在 MySQL Workbench 中导入自包含文件时出现 ERROR 1064
Posted
技术标签:
【中文标题】在 MySQL Workbench 中导入自包含文件时出现 ERROR 1064【英文标题】:ERROR 1064 when importing self-contained file in MySQL Workbench 【发布时间】:2021-02-15 04:53:21 【问题描述】:我使用 mysql Workbench 8.0。我有一个 SQLite 3 格式的数据库文件,我想将其导入 SQL Workbench 以供以后进行逆向工程。导入文件时,出现以下错误:
“第 1 行的错误 1064 (42000):您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以获取在第 1 行的“TRANSACTION”附近使用的正确语法 操作失败,退出代码为 1"
.sqlite 文件的开头如下所示:
BEGIN TRANSACTION;
DROP TABLE IF EXISTS `ZATTACHMENT`;
CREATE TABLE IF NOT EXISTS `ZATTACHMENT` (
`Z_PK` INTEGER,
`Z_ENT` INTEGER,
有什么线索吗?我对 SQL 语法很陌生。
【问题讨论】:
请显示创建表语句的其余部分。此外,您不需要使用 DDL 语句进行开始事务.. MySQL 不支持事务 DDL,所以开始事务没有意义 【参考方案1】:在 MySql 中,它是 START TRANSACTION,而不是 BEGIN TRANSACTION。
SQL 就是这样。表服务器品牌和型号之间的轻微不兼容性是 xxx 脖子上的痛。
【讨论】:
'BEGIN 和 BEGIN WORK 支持作为 START TRANSACTION 的别名来启动事务。 START TRANSACTION 是标准 SQL 语法,是启动临时事务的推荐方式,并允许 BEGIN 不允许的修饰符。 dev.mysql.com/doc/refman/8.0/en/commit.html 但无论如何都不适用于 DDL 语句 谢谢。这有效,但是,程序返回第二行 DROP TABLE IF EXISTSZATTACHMENT
; 的错误。这里有什么明显的问题吗?
@T-StoneLeif 你不应该在测试前接受答案,它只会阻止其他人查看。我无法重现您的问题db-fiddle.com/f/eUBon3mRjXcJWXQykhxSNT/0以上是关于在 MySQL Workbench 中导入自包含文件时出现 ERROR 1064的主要内容,如果未能解决你的问题,请参考以下文章