2010-03-31 25 views
1

我需要爲審計表中的所有字段舊值備份刪除操作創建觸發器。我需要爲審計表中的備份所有字段舊值的刪除操作創建觸發器

我有審計表的表結構

ID,菜單ID,場,OLDVALUE, changedone

現在,只要任何行從其母親表中刪除(菜單)有21個字段在計數,每個字段的舊值應插入審計表與新的審計ID ..

像如果我刪除一行有字段爲:

菜單ID,姓名,年齡,地址,性別,鎮

現在

在審覈表6行應該得到seperately插入如上給出的各個領域:

審計表:

id=2(audittable id) 
      menuid = menuid 
      field = name 
      oldvalue = joy 
      changedone = (whatever the deleted time was) 

      id=3(audittable id) 
      menuid = menuid 
      field = age 
      oldvalue = 23 
      changedone = (whatever the deleted time was) 

等等..

+0

那麼這裏有什麼問題?你到底需要什麼幫助? – 2010-03-31 13:04:06

+0

我需要爲刪除操作創建觸發器,該操作會備份審計表中的所有字段舊值。請幫助創建它 – 2010-03-31 13:04:56

回答

3

這樣的事情應該是你要找的。

delimiter // 
CREATE TRIGGER audit_menu BEFORE DELETE ON menu 
FOR EACH ROW 
BEGIN 
    INSERT INTO audit (menuid, field, oldvalue, changedone) VALUES 
     (OLD.menuid, 'name', OLD.name, UNIX_TIMESTAMP()), 
     (OLD.menuid, 'age', OLD.age, UNIX_TIMESTAMP()), 
     (OLD.menuid, 'address', OLD.address, UNIX_TIMESTAMP()), 
     (OLD.menuid, 'sex', OLD.sex, UNIX_TIMESTAMP()), 
     (OLD.menuid, 'town', OLD.town, UNIX_TIMESTAMP()) 
END;// 
delimiter ; 
+0

它會做你提到的多重插入? – 2010-04-01 04:28:05

+0

儘可能多的插入。這個插入姓名,年齡,地址,性別,城鎮。如果您認爲合適,請添加更多字段。 – thetaiko 2010-04-01 13:16:01

相關問題