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

时间:2011-08-17 14:19:55

标签: sql eclipse

我在基于Eclipse 3.7的STS 2.7.1中使用Eclipse SQL Editor(Eclipse Data Tool Platform 1.9.0)。 (数据库是MySQL 5.5)

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

但是如果我有相同格式的普通插入语句(每行/语句以;结尾),则一起执行所有语句失败。 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服务器版本对应的手册,以便在“INSERT INTO folderidbusinessIdstatustitle附近使用正确的语法,第2行parent_Folder_fk)'

我可以单独执行每一行(选择行和Excecute Selection Alt + X)。所以我猜这些语句没有失败,但是分割语句有些问题。

我的错误在哪里?

2 个答案:

答案 0 :(得分:3)

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

执行all不会沿着分隔符正确地将insert插入到语句中(与其他语句一起正常工作),而较新的MySQL版本不允许多行语句,最有可能阻止SQL注入。

我怀疑前者可以轻松修复,但是有configuration property of MySQL允许多行SQL语句。您只需将“allowMultiQueries = true”添加到数据源的Explorer Source /属性/ Driver Properties / Optional / Additional Properties。

答案 1 :(得分:1)

要向table添加多行,您可以使用此command

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

OR

使用解释HEREplugin加载。


要插入多个表格,请测试更多两件事:

  1. 使用多个stored procedure;
  2. 创建inserts
  3. stored procedureinsert上的每个table创建execute multiple stored procedures