我需要通过prepared statement通过mysql客户端/服务器协议对mysql表执行大量inserts
。怎么做得更好?是否只有一种方法来构建查询,如下所示:
insert into my_table (?, ?), VALUES (1,2), (..., ...)....
并发送它或者mysql客户端/服务器协议支持批量插入?我在mysql文档中找到了COM_STMT_SEND_LONG_DATA,但我不确定它是我需要的。
我在java上看到了示例:Java: Insert multiple rows into MySQL with PreparedStatement并且有addBatch
方法。此方法是仅使用许多insert
子句构建一个VALUES
请求,还是使用了mysql协议中的某些内容?
谢谢。
答案 0 :(得分:2)
MySQL服务器支持批量插入,是的。你可以这样做:
INSERT INTO table_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9),(10,11,12);
答案 1 :(得分:0)
尝试这样的事情:
插入members
(memberID
,CompanyName
,Location
)值
(1,' John Doe'匹兹堡'),
(2,' Jane Sikes'纽约'),
(3,'鲍勃史密斯'洛杉矶');