我使用mysqldump進行備份,包括觸發器,它在執行導入時,用下面的分隔符語法錯誤的結果:在行1059mysqldump的觸發定界符語法
錯誤:分隔符必須跟一個
delimiter
字符或字符串錯誤1064(42000)在行1060:您的SQL語法有錯誤;檢查對應於你的MySQL服務器版本從正確的語法使用近``第5行
1059線觸發statment之前設置分隔符的手冊:DELIMITER ;;
線1060爲:/ 50003 CREATE// 50017 DEFINER = user
@%
// * 50003 TRIGGER database
!。 t_auditclients
觸發器被放入了DELIMITER $$。但是,備份時產生的sql文件具有DELIMITER ;;而不是$$。我手動更改了DELIMITER ;;到mysqldump文件中的DELIMITER $$,並使用mysqlworkbench成功導入。有沒有辦法讓mysqldump輸出成爲用於創建觸發器的原始分隔符?
感謝
轉儲是如何進行的?是否在命令中明確指定了「DELIMITER ;;」? – SparKot
轉儲是從帶有--trigger標誌的命令行獲取的。在dump sql文件中,所有的分隔符命令都是DELIMITER ;; –
我想它的目的是觸發器被註釋掉以支持早期版本(3.x,4.x)中的轉儲。 [MySQL Bug#33494](http://bugs.mysql.com/bug.php?id=33494)。 – SparKot