答案是 。
事实证明,触发器确实看不到其他事务中未提交的更改,并且没有错误地通过。这样可以证明
交易1:
START TRANSACTION;
INSERT INTO plays_in (BetID, PlayerID) VALUES (1,1); -- query A
交易2:
START TRANSACTION;
INSERT INTO plays_in (BetID, PlayerID) VALUES (1,2); -- query B; in conflict with A, but passses
两项交易:
COMMIT;
plays_in
即使A和B在单个事务中执行,现在也会包含两个插入的记录,触发器将引发错误。
整个示例资源可以在这里找到