0
後的MySQL AFTER INSERT
觸發總是正在INSERT
語句後直接執行,或者是有可能發生的2個刀片和2個觸發後發生的?MySQL的觸發器插入件
我就是寫這觸發:
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(主鍵,INT,自動增量)
Playerkills表:
- ID(主鍵,INT,自動增量)
- globalId(關鍵,智力)
- 等
我更擔心插入順序會發生什麼。它會像這樣:Insert1 - > InsertTrigger1 - > ... - > Insert2 - > InsertTrigger2?因爲那些可能不交錯。 – skiwi
如果您使用的是InnoDB,則在InsertTrigger1完成之前,Insert1的數據將無法用於其他查詢。我不確定這是否適用於MyISAM – Dan
好酷,這**完全**我想知道:) – skiwi