有两个表:table1和table2,    其中table1有两个属性attr_ver和attr_av
                                  table2有三个属性attr1,attr2,attr3;
现在创建一个table3,属性和table2一样,问题:创建一个触发器,当table1中的属性更改时,把table2中对应的属性值存到table3中;
要怎么弄啊?初学,请教;

解决方案 »

  1.   

    建表:(注意表之间要有关联关系,这里是ID)CREATE TABLE table1
    (
        ID NUMBER(4),
        attr_ver VARCHAR2(20),
        attr_av VARCHAR2(20)
    );CREATE TABLE table2
    (
        ID NUMBER(4),
        attr1   VARCHAR2(20),
        attr2   VARCHAR2(20),
        attr3   VARCHAR2(20)    
    );CREATE TABLE table3
    (
        ID NUMBER(4),
        attr1   VARCHAR2(20),
        attr2   VARCHAR2(20),
        attr3   VARCHAR2(20)    
    );
    编译成功的触发器:CREATE OR REPLACE TRIGGER tr_personalarchives
    AFTER UPDATE OR DELETE ON T_ARCHIVES
    FOR EACH ROW 
    DECLARE
        PRAGMA autonomous_transaction;
        vArchiveName T_ARCHIVES.archivesname%TYPE;
    BEGIN
    IF updating THEN
        SELECT archivesname FROM t_archives WHERE archivesid = :new.archivesid;
        UPDATE T_PERSONALARCHIVES set archivesname = vArchiveName;
        where archivesid = :new.archivesid;
    END IF;
    END;