我的觸發看起來是這樣的:觸發導致#1054 - 在未知列 'X' 'where子句'
DROP TRIGGER IF EXISTS `trigger_name`;
DELIMITER //
CREATE TRIGGER `trigger_name`
AFTER UPDATE ON `table1`
FOR EACH ROW UPDATE `table2` SET `modified` = CURRENT_TIMESTAMP WHERE `id` = `NEW.id`
//
DELIMITER ;
這崩潰並出現上述錯誤(#1054),如果做到這一點:
UPDATE table1 SET owner = NULL WHERE id = 82
找到了解決辦法!問題是反引號/反引號(`)。如果我改寫觸發器就像
DROP TRIGGER IF EXISTS trigger_name;
DELIMITER //
CREATE TRIGGER trigger_name
AFTER UPDATE ON table1
FOR EACH ROW UPDATE table2 SET modified = CURRENT_TIMESTAMP WHERE id = NEW.id
//
DELIMITER ;
一切工作正常! :-)除非嚴格限制,否則我建議不要使用反引號/反引號(`)。