我在基于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
folder
(id
,businessId
,status
,title
附近使用正确的语法,第2行parent_Folder_fk
)'
我可以单独执行每一行(选择行和Excecute Selection Alt + X)。所以我猜这些语句没有失败,但是分割语句有些问题。
我的错误在哪里?
答案 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
使用解释HERE的plugin
加载。
要插入多个表格,请测试更多两件事:
stored procedure
; inserts
stored procedure
和insert
上的每个table
创建execute multiple stored procedures
。