Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Czy można zrobić kopiowanie zbiorcze w mysql

Możesz wstawić wiele wierszy za pomocą jednej instrukcji SQL, jak na przykład:

INSERT INTO myTable (col1, col2, col3) VALUES ('myval1', 'myval2', 'myval3'), ('myotherval1', 'myotherval2', 'myotherval3'), ('anotherval1', 'anotherval2', 'anotherval3');

Aktualizacja:

MarkR ma rację w swoim komentarzu - jeśli zbierasz dane od użytkownika lub kompilujesz informacje, możesz dynamicznie zbudować zapytanie za pomocą czegoś takiego:

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();

Dwa ważne punkty do zapamiętania:

  1. Jeśli akceptujesz dane wejściowe od użytkownika, jest to bardzo ważne w celu oczyszczenia wszystkich danych wejściowych użytkownika, w przeciwnym razie złośliwi użytkownicy mogą zmodyfikować/usunąć/upuścić całą bazę danych. Aby uzyskać więcej informacji, wyszukaj w Google „Wstrzyknięcia SQL”.
  2. Używam klasy StringBuilder, zamiast używać prymitywu ciągu i po prostu dołączać (tj. string s ="Wstaw..."; s+="blah blah blah"), ponieważ jest to StringBuilder szybciej dołączający, ponieważ nie jest traktowany jako tablica, więc nie musi zmieniać swojego rozmiaru podczas dołączania do niego.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Problem z przechowywaniem niemieckich słów w MySql DB....?

  2. Aktualizacja MYSQL z błędem podzapytania WHERE SELECT

  3. Jak odinstalować powłokę Mysql na MacOS

  4. Kolumna obliczona z innej kolumny?

  5. Prawidłowy sposób przechowywania daty MySQL po roku 2037