2016-03-19 105 views
-1

我挂的两个桌子下面,我需要一个触发时在do_chd_hist表,DO_MST表同时插入插入do_chd表DO_MST_HIST表PL SQL触发器当插入表格插入到另一个表

create table do_mst 
(fdo_no varchar2(14) not null, 
fdo_date date not null, 
code_db varchar2(11), 
db_name varchar2(25), 
code_sdb varchar2(11), 
sdb_name varchar2(25), 
code_sst varchar2(11), 
sst_name varchar2(25), 
constraint fdo_no_pk primary key(fdo_no) 
); 

create table do_mst_hist 
(fdo_no varchar2(14) not null, 
fdo_date date not null, 
code_db varchar2(11), 
db_name varchar2(25), 
code_sdb varchar2(11), 
sdb_name varchar2(25), 
code_sst varchar2(11), 
sst_name varchar2(25), 
constraint fdo_no_pk primary key(fdo_no) 
); 

create table do_chd 
(fdo_no varchar2(14) not null, 
itemcode varchar2(11) not null, 
name varchar(27) not null, 
unit_price varchar2(11), 
req_qty number(11) not null, 
total_price number(14), 
unit varchar2(7), 
constraint fdo_no_fk foreign key(fdo_no) 
references do_mst(fdo_no) 
); 

create table do_chd_hist 
(fdo_no varchar2(14) not null, 
itemcode varchar2(11) not null, 
name varchar(27) not null, 
unit_price varchar2(11), 
req_qty number(11) not null, 
total_price number(14), 
unit varchar2(7), 
constraint fdo_no_fk foreign key(fdo_no) 
references do_mst(fdo_no) 
); 

任何人可以帮助我写这个触发器?

+0

我相信如果你在谷歌上搜索它们,文档会帮助你。你需要表现出一些努力。 –

+0

Liton,这个网站不是一个代码写作服务,你可以让他人免费完成你的工作。 –

+2

我正在投票结束这个问题作为题外话,因为我觉得它有违使用者认为我们在这里做他/她的工作。该运作显然没有表现出任何努力,并宣布有意使用他人的工作。 –

回答

0

尽管我同意评论中的说法,但我认为没有理由对创建触发器语法进行三次考虑,我很乐意向您展示解决问题的方法:

CREATE OR REPLACE TRIGGER do_chd_insert_trg 
    AFTER INSERT do_chd 
    FOR EACH ROW 
DECLARE 
    sal_diff number; 
BEGIN 
    insert into do_chd_hist 
    values (new.fdo_no, new.itemcode, new.name, new.unit_price, new.req_try, new.total_price, new.unit); 
END; 
/

在更改可尊重的列名称后,可以使用此语法生成第二个表的触发器。 你可以在这里阅读更多关于oracle触发语法 - https://docs.oracle.com/cd/B19306_01/appdev.102/b14251/adfns_triggers.htm

+0

亚龙伊丹我想感谢您的答案,但它还没有工作。有一个编译错误。 –

+0

您收到的错误是什么? –