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. 令牌是否可以在django rest框架中進行復制?
- 4. 是否可以在Flex中進行深度複製?
- 5. 是否可以在Linq 2 Sql中批量或批量插入?
- 6. 是否可以殺死正在複製到tmp表的複製MySQL進程?
- 7. 是否有可能在MongoDB中進行原子批量更新?
- 8. 是否可以在cassandra中進行順序批處理?
- 9. 是否可以在.htaccess文件中使用通配符進行批量移動?
- 10. 是否可以在MSAccess中執行批量插入
- 11. 可以在mysql中複製
- 12. 是否可以在MySQL中對兩行進行分組?
- 13. 在進行DynamoDB跨區域表複製時是否可以重複重複?
- 14. 是否有可能在VB.NET中複製以下憑據進程?
- 15. 是否可以使用SQL Server 2005進行壓縮複製
- 16. 是否可以使用ES5 JavaScript進行深層複製?
- 17. 是否可以縮短批量代碼
- 18. 是否可以創建批量插入?
- 19. 是否可以批量轉義冒號?
- 20. 是否可以在Google Appengine上使用JDO進行批量更新?
- 21. 是否可以在MySQL查詢中進行遞歸循環?
- 22. 是否可以在MySQL中進行值排序?
- 23. 是否可以在Java中進行錯誤恢復?
- 24. 是否可以在Orbeon的重複表格中進行計算?
- 25. 是否可以在COBOL中使用變量進行顯示?
- 26. 在MySQL中可以選擇的行數是否有限制?
- 27. 是否可以在java中執行二進制文件?
- 28. 是否可以從mysql中的別名中進行選擇?
- 29. 是否可以批量製作搜索工具?
- 30. 是否可以對項目元數據進行批處理?
多數民衆贊成好...我從我的aspx頁面傳遞價值..我沒有直接給出值... – TinTin 2010-05-12 19:20:59
您可以建立查詢編程最大數據包大小(在服務器上配置) – MarkR 2010-05-12 19:29:40
MarkR是正確的 - 請參閱我的更新瞭解更多信息... – AlishahNovin 2010-05-12 20:39:52