2015-10-07 218 views
1

我一直试图在表中插入数据,比如说当管理员动态插入两个其他表中的数据时,即table_1和table_2。我能够得到所需的输出只有一个表,但不是多个表。我如何通过在oracle中使用触发器来实现这一点?如何使用oracle中的触发器从另外两个表中插入数据在另一个表中插入数据

+0

创建两个触发器,一个对TABLE_1等上TABLE_2。 –

+0

并且应用相同的逻辑只是表名将会不同 –

+0

如果只希望在相同的数据同时插入到两个基础表中时插入到ADMIN表中,您能澄清一下您的问题吗? –

回答

0

2个表创建2个触发器为拉利特在其他表建议

CREATE or replace TRIGGER TRG_TAB1 
      BEFORE INSERT ON tab1... 

... insert into admin (name) values (:new.name) 

CREATE or replace TRIGGER TRG_TAB2 
      BEFORE INSERT ON tab2... 
... insert into admin (name) values (:new.name) 
+0

我猜表名应该不同? –

+0

OP希望以其他方式触发table_1和table_2向管理员插入数据。 –

+0

@Moudiz'new.name'将会失败,new应该被引用为':new'。 –

0

您需要创建两个单独的INSERT触发器,一个在table_1,另一个在table_2到将数据插入到admin表中。

触发1:

CREATE OR REPLACE TRIGGER table_1_after_insert 
AFTER INSERT 
    ON table_1 
    FOR EACH ROW 
BEGIN 

    -- Insert record into admin table 
    INSERT INTO admin 
    (column1, 
    column2, 
    column3, 
    column4, 
    column5) 
    VALUES 
    (:new.column1, 
    :new.column2, 
    :new.column3, 
    :new.column4, 
    :new.column5); 

END; 
/

触发2:

CREATE OR REPLACE TRIGGER table_2_after_insert 
AFTER INSERT 
    ON table_2 
    FOR EACH ROW 
BEGIN 

    -- Insert record into admin table 
    INSERT INTO admin 
    (column1, 
    column2, 
    column3, 
    column4, 
    column5) 
    VALUES 
    (:new.column1, 
    :new.column2, 
    :new.column3, 
    :new.column4, 
    :new.column5); 

END; 
/
相关问题