Mysql
如何使用觸發器mysql更新一列
我有兩張桌子,第一張是
Table KEYS |game | keys | |WOW | AAAAAAA-AAAAAAA-AAAAA| |WOW | BBBBBBB-BBBBBBB-BBBBB| |L4D2 | AAAAAAA-AAAAAAA-AAAAA| TABLE inventory |game | country | language | pieces| |WOW | USA | EN | 0 | (its 0 by default) |L4D2 | USA | EN | 0 | ""
我想要實現的是庫存上的列件由 COUNT 鍵表的遊戲列更新,所以最後我的庫存表應該看起來像
|game | country | language | pieces| |WOW | USA | EN | 2 | |L4D2 | USA | EN | 1 |
我試過的
DELIMITER $$ CREATE TRIGGER 'inventario' AFTER INSERT ON `KEYS` FOR EACH ROW BEGIN UPDATE inventory.pieces WITH SELECT COUNT(*) keys.game FROM keys WHERE keys.game = inventory.game END $$;
我不知道在 KEYS 表上更新/插入數據後是否有任何其他方法可以自動實現這一點
如果您說 in 中的行
inventory
必然存在,則 Trigger 的主體是這樣的:FOR EACH ROW UPDATE inventory SET pieces = pieces + 1 WHERE old.game = inventory.game
如果您需要插入尚未創建的行:
FOR EACH ROW INSERT INTO inventory ( ( game, country, language, pieces ) VALUES ( OLD.game, 'USA', 'EN', 1 ) ON DUPLICATE KEY UPDATE SET pieces = pieces + 1
(如果不是 USA 和 EN,則需要做一些事情。)
我真誠地道歉,我在發布後我試圖在任何地方搜尋和搜尋類型我注意到相關問題在過去已經得到了回答https://dba.stackexchange.com/a/135296/250535 抱歉這個無用的執行緒