我在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。
请建议。