Mysql
 sql >> база данни >  >> RDS >> Mysql

Възможно ли е да се направи групово копиране в mysql

Можете да вмъкнете няколко реда, като използвате един 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();

Две важни точки, които трябва да отбележите:

  1. Ако приемате информация от потребител, това е много важно за дезинфекция на всички въведени потребители, в противен случай злонамерените потребители биха могли да променят/изтриват/изпускат цялата ви база данни. За повече информация потърсете в Google „SQL инжекции.“
  2. Използвам класа StringBuilder, вместо да използвам примитив на низ и просто добавям (т.е. string s ="Insert..."; s+="blah blah blah"), защото това е StringBuilder е по-бърз при добавяне, т.к. не се третира като масив и следователно не е необходимо да се преоразмерява, докато добавяте към него.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. как да разделя таблица по колона дата и час?

  2. Сума Множество реда Разлика в датата Mysql

  3. Как да изберете до достигане на сума

  4. MySQL Regexp поддържа ли съвпадение на Unicode

  5. Журналиране на транзакции в MySQL