2011-06-27 57 views
12

這是我的理解是,當你調用LAST_INSERT_ID(),它會通過連接,所以你會得到插入相同的連接上的最後一排,其中LAST_INSERT_ID()被調用的ID,右?MySQL的越來越LAST_INSERT_ID()在觸發

那麼,如果我把在 'AFTER INSERT' 觸發LAST_INSERT_ID()?

我想要做的基本上是這樣

DELIMITER $$ 
CREATE TRIGGER sometrigger 
AFTER INSERT ON sometable 
BEGIN 
    INSERT INTO anothertable (id, lastup) VALUES (last_insert_id(), NOW()); 
END $$ 

這是非常重要的是,在「anothertable」的ID是一樣的「sometable」 將這項工作或我應該創建一個存儲過程,而不是插入到兩個表中?

或可能有一些,在觸發,擺脫導致觸發器觸發INSERT語句中值?我還沒有發現任何關於這一點。

回答

17

你應該能夠使用NEW.{id column name}指最後插入的ID(因此,例如NEW.id如果自動增量列稱爲id。)

+0

這似乎是工作。那個NEW關鍵字就是我正在尋找的東西。謝謝。 –