5
A
回答
3
您可以使用一个SQL语句,像这样插入多行:
INSERT INTO myTable (col1, col2, col3) VALUES ('myval1', 'myval2', 'myval3'), ('myotherval1', 'myotherval2', 'myotherval3'), ('anotherval1', 'anotherval2', 'anotherval3');
更新:
MarkR是正确的,他的评论 - 如果你收集用户数据,或者你正在编译的信息,你可以像动态构建查询:
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append("INSERT INTO myTable (col1, col2, col3) VALUES ");
for(int i=0;i<myDataCollection.Count;i++) {
stringBuilder.Append("(" + myDataCollection[i].Col1 + ", " + myDataCollection[i].Col2 + ", " + myDataCollection[i].Col3 + ")");
if (i<myDataCollection.Count-1) {
stringBuilder.Append(", ");
} else {
stringBuilder.Append(";");
}
}
string insertStatement = stringBuilder.ToString();
两个要点需要注意:
- 如果你接受来自用户的输入,这是非常重要消毒所有的用户输入,否则,恶意用户可能会修改/删除/降你的整个数据库。有关更多信息,请参阅Google“SQL注入”。
- 我正在使用StringBuilder类,而不是使用字符串原语并简单地追加(即string s =“Insert ...”; s + =“blah blah blah”),因为它的StringBuilder在追加时更快,因为它不被视为数组,因此不需要在追加到它时调整自己的大小。
1
可以使用LOAD DATA INFILE(或LOAD DATA LOCAL INFILE)将行从现有文件批量加载到表中。
对于LOAD DATA LOCAL,文件从客户端传输到服务器并作为大批量插入。这不受最大数据包大小(如INSERT)的限制,但它仍然受限于可以在innodb中回滚的最大事务 - 它全部在一个事务中执行,所以如果它太大,它将超出回滚空间,并且无论如何,如果回滚一个非常大的事务,则需要很长时间并影响服务器。
正常情况下,作为单个插入或加载数据加载超过几个(可能为数十个,可能数百个)兆字节的数据是不可取的。如果你有更多,你可以分解它。
相关问题
- 1. 批量插入是否可以在Mongodb中进行验证?
- 2. 是否可以使用MySQL进行N-master => 1-slave复制?
- 3. 是否可以在Flex中进行深度复制?
- 4. 令牌是否可以在django rest框架中进行复制?
- 5. 是否可以在Linq 2 Sql中批量或批量插入?
- 6. 是否可以杀死正在复制到tmp表的复制MySQL进程?
- 7. 是否有可能在MongoDB中进行原子批量更新?
- 8. 是否可以在.htaccess文件中使用通配符进行批量移动?
- 9. 是否可以在MySQL中对两行进行分组?
- 10. 是否有可能在VB.NET中复制以下凭据进程?
- 11. 是否可以使用ES5 JavaScript进行深层复制?
- 12. 是否可以使用SQL Server 2005进行压缩复制
- 13. 是否可以创建批量插入?
- 14. 是否可以批量转义冒号?
- 15. 是否可以在MySQL中进行值排序?
- 16. 是否可以在MySQL查询中进行递归循环?
- 17. 是否可以在Orbeon的重复表格中进行计算?
- 18. 是否可以在Java中进行错误恢复?
- 19. 是否可以在COBOL中使用变量进行显示?
- 20. 在MySQL中可以选择的行数是否有限制?
- 21. 是否可以在java中执行二进制文件?
- 22. 是否可以对项目元数据进行批处理?
- 23. 是否可以执行批量POST API调用?
- 24. 甲骨文批量复制重复行
- 25. 与XlsxWriter是否可以进行二进制相同的输出?
- 26. 是否可以在directx dc/buffer上使用opengl进行绘制?
- 27. ODP.NET批量复制
- 28. Sybase批量复制
- 29. 批量复制 - sybase
- 30. 是否可以对可绘制的渐变进行抖动?
多数民众赞成好...我从我的aspx页面传递价值..我没有直接给出值... – TinTin 2010-05-12 19:20:59
您可以建立查询编程最大数据包大小(在服务器上配置) – MarkR 2010-05-12 19:29:40
MarkR是正确的 - 请参阅我的更新了解更多信息... – AlishahNovin 2010-05-12 20:39:52