【发布时间】:2013-11-23 15:50:42
【问题描述】:
MySQL AFTER INSERT 触发器是否总是在 INSERT 语句之后直接执行,还是有可能发生 2 次插入,然后发生 2 次触发器?
我正在写这个触发器:
CREATE DEFINER=`p28004_bf4`@`localhost` TRIGGER `setId`
AFTER INSERT ON `playerkills`
FOR EACH ROW
BEGIN
INSERT INTO globals () VALUES();
UPDATE playerkills SET globalId = LAST_INSERT_ID() WHERE id = ROW.id;
END
而且我担心如果插入语句以某种方式交错会发生什么,globalId 必须始终保持一致,就像跨多个表的全局唯一标识符一样。
全局表:
- id(主键、整数、自动增量)
玩家技能表:
- id(主键,int,自动增量)
- globalId(键,整数)
- 等
【问题讨论】: