数据库中有table1,table2两张表,存在主外键关系,
写一个触发器,向table2表中插入数据,
要求:向table2表中插入数据时,判断主外键关系,
如果外键关联不到数据,则先向table1表中插入数据。
(table1的字段:table1_id, table1_name)
(table2的字段:table2_id, table1_id, table2_price)哪个大人给写一个,我学习下,感激不尽 !
= =!看我楚楚可怜的双眼皮~

解决方案 »

  1.   

    DROP TABLE table1 purge;CREATE TABLE table1
    (table1_id integer,
    table1_name varchar2(10),
    constraint pk_table1 primary key(table1_id));DROP TABLE table2 purge;CREATE TABLE table2
    (table2_id integer,
    table1_id integer,
    table2_name varchar2(10),
    constraint fk_table2 foreign key(table1_id) references table1(table1_id));CREATE OR REPLACE TRIGGER tri_table2
    AFTER INSERT ON TABLE2
    FOR EACH ROW
    DECLARE
      v_cnt NUMBER;
    BEGIN  SELECT COUNT(*)
        INTO v_cnt
        FROM table1
       WHERE table1_id = :new.table1_id;  IF v_cnt = 0 THEN
        INSERT INTO table1(table1_id, table1_name) VALUES(:new.table1_id, :new.table2_name);
      END IF;END;
    /INSERT INTO table2 (table2_id, table1_id, table2_name) VALUES(201, 101, '2_NAME');SELECT * FROM table1;