LAST_INSERT_ID()调用内部触发器

时间:2014-06-13 10:45:26

标签: mysql triggers

我在books'' DROP TRIGGER IF EXISTS `book_insert`; CREATE TRIGGER book_insert AFTER INSERT ON books FOR EACH ROW BEGIN INSERT INTO ownertable(`fk_acl_user`, `record_id`, `record_type`, `action`, `ip`) VALUES (NEW.`fk_acl_user`, NEW.`id_book`, 'book','insert', NEW.ip); SET @ACTIVITY_ID=LAST_INSERT_ID(); INSERT INTO logtable(`fk_activity_owner`, `table_name`, `new_value`) VALUES (@ACTIVITY_ID, 'books', CONCAT_WS('|', CONCAT_WS('', 'name~', NEW.`name`), CONCAT_WS('', 'is_active~', NEW.`is_active`), CONCAT_WS('', 'discount_amount_default~', NEW.`discount_amount_default`) ) ); END; '表。 此触发器的作用是在books表上进行任何插入时记录activity_owner和activity_log表中的条目。

LAST_INSERT_ID()

我面临的问题是LAST_INSERT_ID()并不总是返回正确的ID。 我有以下问题: 一个。当我无法信任{{1}}的结果时,有哪些可能的情况。 湾有没有更好的方法来获取ownertable中最后插入的记录的ID。

请建议。

0 个答案:

没有答案