MySQL Trigger
最近把資料儲存引擎從 MyISAM 改成 InnoDB,會遇到複合鍵 AUTO_INCREMENT
而無法轉換的問題。
後來想到可以試試改用觸發器來達成一樣的效果。
後來想到可以試試改用觸發器來達成一樣的效果。
DELIMITER | CREATE TRIGGER <trigger_name> BEFORE INSERT ON <table_name> FOR EACH ROW BEGIN SET NEW.id = (SELECT IFNULL(MAX(id),0) + 1 FROM <table_name> WHERE created_at = NEW.created_at); END | DELIMITER ;說明:
- 第一行和最後一行很重要,他會改變 SQL 的結束符號(預設是「;」),如果不改的話會因為中間出現的分號而導致錯誤。
- 最後一行 DELIMITER 後面要有空格再分號,否則會發生錯誤,雖然觸發器有新增成功。

留言
張貼留言