首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >连接sql语句插入

问连接sql语句插入
EN

Stack Overflow用户
提问于 2018-07-20 13:24:26
回答 3查看 107关注 0票数 1

我有一个脚本,需要在一个语句中插入多个东西,例如

代码语言:javascript
复制
sql = "INSERT INTO `table` (something, something) VALUES (smth,smth); INSERT INTO `table` (something, something) VALUES (smth,smth)";
Statement stmt = connection_db.createStatement();  
 boolean update = stmt.execute(sql);

long sql基于条件进行连接,并且需要长到这个长度。在phpmyadmin中使用这种sql语句是有效的,插入它没有问题,但是JAVA会抛出一个错误。

代码语言:javascript
复制
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'INSERT INTO `

我是否可以做些什么来插入这类sql,还是应该重新编写代码以多次启动以实现相同的结果?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-07-20 13:27:10

一种简单的方法是使用批处理SQL插入。

代码语言:javascript
复制
  sql = "INSERT INTO `table` (something, something) 
          VALUES (smth,smth), (smth,smth)";

这是一个标准的sql weay,用于使用单个查询插入更多行。

票数 1
EN

Stack Overflow用户

发布于 2018-07-20 13:28:03

只传递多个值

见下面的语法:

代码语言:javascript
复制
INSERT INTO tbl_name
    (something, something)
VALUES
    (1,2),
    (4,5),
    (7,8);
票数 0
EN

Stack Overflow用户

发布于 2018-07-20 13:29:27

您必须拆分sql并对其进行迭代:

代码语言:javascript
复制
sql = "INSERT INTO `table` (something, something) VALUES (smth,smth); INSERT INTO `table` (something, something) VALUES (smth,smth)";
sqls = sql.split(";");
for(int i=0; i<sqls.length;sqls++) {
  statement = connection.prepareStatement(sqls[i]);
  statement.execute();
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51443555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档