使用eclipse数据工具执行多个sql语句(全部执行)

使用eclipse数据工具执行多个sql语句(全部执行),sql,eclipse,Sql,Eclipse,我在基于Eclipse3.7的STS2.7.1中使用EclipseSQL编辑器(EclipseDataToolPlatform 1.9.0)。(数据库为MySQL 5.5) 如果我有SQL剪贴簿(或任何其他文件),并在其中放入一些SQL DDL语句,其中每个语句都写在以结尾的单行上(这是eclipse中配置的分隔符),然后我可以一起执行所有语句(执行所有Ctrl+Alt+X)。如果没有问题,eclipse会将每个语句作为单个语句执行 但是如果我有相同格式的普通insert语句(每行/语句以;)结

我在基于Eclipse3.7的STS2.7.1中使用EclipseSQL编辑器(EclipseDataToolPlatform 1.9.0)。(数据库为MySQL 5.5)

如果我有SQL剪贴簿(或任何其他文件),并在其中放入一些SQL DDL语句,其中每个语句都写在以
结尾的单行上(这是eclipse中配置的分隔符),然后我可以一起执行所有语句(执行所有Ctrl+Alt+X)。如果没有问题,eclipse会将每个语句作为单个语句执行

但是如果我有相同格式的普通insert语句(每行/语句以
)结尾),那么一起执行所有语句都会失败。Eclipse尝试在一条SQL语句中处理所有语句。这失败了,MySql报告了一个语法错误

INSERT INTO `folder` (`id`, `businessId`, `status`, `title`, `parent_Folder_fk`) VALUES(1, 1544565486, 'ACTIVE', 'Root', NULL);
INSERT INTO `folder` (`id`, `businessId`, `status`, `title`, `parent_Folder_fk`) VALUES(6, 1802811831392782301, 'ACTIVE', 'Ralphz', 1);
...
您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解在第2行的“插入到
文件夹
id
businessId
status
title
parent\u folder\u fk
)附近使用的正确语法

我可以单独执行每一行(选择该行并执行Alt+X选择)。因此,我猜语句中没有失败,但是拆分语句有问题


我的错误在哪里?

要在
表中添加多行
,可以使用此
命令

INSERT INTO `folder` (`id`, `businessId`, `status`, `title`, `parent_Folder_fk`) VALUES(1, 1544565486, 'ACTIVE', 'Root', NULL), (6, 1802811831392782301, 'ACTIVE', 'Ralphz', 1);

使用
插件加载,如上文所述


要在多个表中插入,请测试以下两项:

  • 创建一个具有多个
    插入项的
    存储过程
  • 表上的每个
    插入
    创建
    存储过程
    ,并
    执行多个存储过程

  • 找到问题的原因和解决方案

    Execute all不会将insert into语句正确地沿着分隔符分开(与其他语句tho配合使用),而较新的MySQL版本不允许在一行中使用多个语句,这很可能会阻止SQL注入


    我怀疑前者可以很容易地修复,但是有一个允许多行SQL语句的方法。您只需将“allowMultiQueries=true”添加到数据源浏览器/数据源属性/驱动程序属性/可选/附加属性。

    我不明白您是否需要
    GO
    上的code>。
    GO
    仅被Microsoft工具接受作为标准分隔符
    的替代不,很遗憾,跳过分号不起作用。同样的错误,Eclipse/Zend Studio认为这是一个大SQL语句,而不是几个。@Frigo我提出了另一个解决方案。请试一试:)是的,这适用于一个表,但一旦您需要插入多个表,它就会失败:/@Frigo:这条语句“Execute all不沿分隔符正确地将插入语句分开”是否意味着Eclipse数据工具中存在错误?如果是的话,你知道有没有向Eclipse报告过?