2016-03-19 153 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

您收到的錯誤是什麼? –