在 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 EXISTS ZATTACHMENT; 的错误。这里有什么明显的问题吗? @T-StoneLeif 你不应该在测试前接受答案,它只会阻止其他人查看。我无法重现您的问题db-fiddle.com/f/eUBon3mRjXcJWXQykhxSNT/0

以上是关于在 MySQL Workbench 中导入自包含文件时出现 ERROR 1064的主要内容,如果未能解决你的问题,请参考以下文章

在 PowerPivot 中导入自定义 Atom 提要

在 redhat 中导入自签名证书

在 MySQL Workbench 中导出数据库

在 Laravel 8 中导入自定义字体

在 Java 中导入自定义类

在 azure ml 部署环境中导入自定义 python 模块