2016-12-13 49 views
0

第一次綁定在mysql中使用觸發器。我在AFTER UPDATE中沒有任何問題,它只向我的審計文件寫入一條記錄。 但是,當我執行AFTER INSERT時,它會將原始表中的所有記錄副本寫入審計表。我只是寫了一個更改後的記錄到審計文件。我想這是因爲'For each row',但我發現的所有例子都包含這個命令。我錯過了什麼?插入後觸發將所有行的副本寫入審計文件

CREATE TRIGGER insertafter AFTER INSERT ON `delete4try` 
FOR EACH ROW INSERT INTO delete4try_audit 
SELECT h . * , NULL , NOW() FROM delete4try h 

回答

0

,因爲你沒有WHERE子句, 你可能想使用NEW.col1,NEW.col2例如,取出從delete4try

CREATE TRIGGER insertafter AFTER INSERT ON `delete4try` 
FOR EACH ROW INSERT INTO delete4try_audit 
SELECT NEW.col1,NEW.col2,NULL,NOW() 

col1和col2上只是選擇樣本用您的實際列名替換它們。

+0

例如,如果您的delete4try有一個名爲col1的列,則NEW.col1將返回用於插入col1的值以用於剛插入的新行 –