我正在使用 mysqldump 转储表。不幸的是,转储的SQL包含错误。
我遇到的第一个错误是MySQL不喜欢mysqldump使用DELIMITER
。我在某处看到这些是无关紧要的,所以我尝试半手动删除它们然后发现下一个错误:
错误代码:1064。您的SQL语法有错误;检查 手册,对应右边的MySQL服务器版本 在'附近使用的语法'; / *!50003 SET sql_mode = 第1行的@saved_sql_mode * /'
转储本身是375行所以我不会在这里粘贴它,但这似乎是有问题的行 - 这行在SQL转储中出现两次:
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
这个表还包含一个触发器,我读过(例如,here)MySQL不喜欢这些转储/生成的触发器。但是,该引用的网页已超过一年,我使用的是最新版本的MySQL和mysqldump.exe - v5.6.16。
请注意,我不使用数据转储表。
任何人都可以解释一下解决这个问题的方法吗?它与触发器有关吗?它与我们表的细节有什么关系,还是mysqldump.exe包含缺陷?
我不想手动编辑文件,因为这个转储过程构成了我们单元测试的一部分 - 我们将数据库(只有一些用数据转储的表)转储到测试数据库中,作为自动化过程的一部分。