13

last_insert_id()を呼び出すと接続が通過するので、last_insert_id()が呼び出されたのと同じ接続に挿入された最後の行のIDを取得することを理解しています。

では、「AFTERINSERT」トリガーで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'のIDと同じであることが非常に重要です。これは機能しますか、それとも両方のテーブルに挿入する代わりにストアドプロシージャを作成する必要がありますか?

または、トリガーに、トリガーを起動させた挿入ステートメントから値を取得するものがある可能性がありますか?私はそれについて何も見つけていません。

4

1 に答える 1

19

最後の挿入IDを参照するために使用できるはずですNEW.{id column name}(たとえばNEW.id、自動インクリメント列が呼び出された場合id)。

于 2011-06-27T22:12:24.573 に答える