----日志
CREATE TABLE MEMORY_TAB_CARD
(
    c_card varchar(50) not null primary key,
    g_id integer not null,
    user_id integer not null
)
---------------卡表----------------------------CREATE TABLE TAB_CARD
(
    C_CARD VARCHAR(50) NOT NULL PRIMARY KEY,--卡游戏id
    G_ID INTEGER NOT NULL,--卡号
    USER_ID INTEGER--用户编号
)----------卡游戏表----------------------------------TAB_GAMECRAD
CREATE TABLE TAB_GAMECRAD
(
    G_ID INTEGER NOT NULL PRIMARY KEY, --卡游戏id
    G_PARTNERS VARCHAR(50) NOT NULL,--卡游戏合作商名称
    G_CREATETIME date NOT NULL,--卡游戏创建时间
    G_MEMO VARCHAR(50) NOT NULL--卡游戏备注
)
卡游戏为主表,卡表为外建表,有主外建关系在删除卡表的某条数据时,删除卡游戏里相关记录,并且向日志插入一条记录
求助!!!!

解决方案 »

  1.   

    create or replace trigger log_trig
    after delete on tab_card for each row
    declare
    begin
    insert into memory_tab_card(c_card,g_id,user_id)
    values(:old.c_card,:old.g_id,:old.user_id);
    end log_trig;
    /--因为你的tab_card和tab_gamecrad有主外键关联,因此你可以在他们上边建立级联删除.
    --当删除tab_gamecrad表的数据是,tab_card表中的相对于数据也会被删除。
    --所以就在tab_card表上建立一个触发器,当删除该表上一条记录时,就触发触发器写日志到memory_tab_card表中。
      

  2.   

    --没有测试不确定对
    Create trigger TAB_CARD_trigger
     after  delete
     On TAB_CARD
    for each row
    begin
    delete TAB_GAMECRAD where G_ID=:old.G_ID;
    insert into MEMORY_TAB_CARD values(:old.c_card,:old.G_ID,:old.USER_ID);
    commit;
    end;