Allgemeine Schreibbeispiele für MySQL- und Oracle-Batch-Insert-SQL

Allgemeine Schreibbeispiele für MySQL- und Oracle-Batch-Insert-SQL

Zum Beispiel:

Jetzt müssen wir Benutzerobjekte stapelweise zur USER-Tabelle in der Datenbank hinzufügen

öffentliche Klasse Benutzer{
    //Nameprivater Stringname;
    //Alterprivate Integer Alter;
    //Geschlechtprivate Ganzzahliges Geschlecht
}

Die meisten Leute sind mit MySQL vertraut und denken vielleicht, dass Batch-Add-SQL auf diese Weise geschrieben wird, aber das ist nicht der Fall. Diese Schreibmethode ist in MySQL einwandfrei, in Oracle führt sie jedoch zu einem Fehler.

MySQL-Schreiben:

IN BENUTZER EINFÜGEN 
    (NAME, ALTER, GESCHLECHT)
WERTE
('Wert1_1', 'Wert1_2', 'Wert1_3'),
('Wert2_1', 'Wert2_2', 'Wert2_3'),
('Wert3_1', 'Wert3_2', 'Wert3_3');

Oracle-Schreibweise:

//Mehrere einzelne Einfügungen INSERT INTO USER (NAME,AGE,SEX) VALUES ('val1_1', 'val1_2', 'val1_3');
IN BENUTZER EINFÜGEN (NAME, ALTER, GESCHLECHT) WERTE ('val2_1', 'val2_2', 'val2_3');
IN BENUTZER EINFÜGEN (NAME, ALTER, GESCHLECHT) WERTE ('val3_1', 'val3_2', 'val3_3');

//Batch-Einfügen INSERT ALL
   INTO BENUTZER (NAME, ALTER, GESCHLECHT) WERTE ('val1_1', 'val1_2', 'val1_3')
   INTO BENUTZER (NAME, ALTER, GESCHLECHT) WERTE ('val2_1', 'val2_2', 'val2_3')
   INTO BENUTZER (NAME, ALTER, GESCHLECHT) WERTE ('val3_1', 'val3_2', 'val3_3')
WÄHLEN SIE 1 AUS DUAL;

Es zeigt sich, dass beide Oracle-Schreibmethoden relativ problematisch sind und die Stapeleinfügung die Anzahl der eingefügten Spaltennamen überhaupt nicht verringert. Ein weiteres Problem besteht darin, dass ein Softwaresystem bei der Unternehmensentwicklung möglicherweise mehrere Datenbanken unterstützen muss. Daher muss dieser neu hinzugefügte Vorgang an zwei Datenbanken angepasst werden und zwei SQL-Sätze verwalten, was die Entwicklungskosten erheblich erhöht.

Gibt es also eine universelle Schreibweise? Die Antwort ist ja.

Allgemeines Schreiben:

IN BENUTZER EINFÜGEN (NAME, ALTER, GESCHLECHT)
    Wählen Sie ('val1_1', 'val1_2', 'val1_3') aus dualer Vereinigung aller
    Wählen Sie ('val2_1', 'val2_2', 'val2_3') aus dualer Vereinigung aller
    wähle ('val3_1', 'val3_2', 'val3_3') aus dual

Auf diese Weise können Sie den Prozess vereinfachen und einen SQL-Satz weniger verwalten, wodurch Sie das Beste aus beiden Welten erreichen.

Nachfolgend finden Sie den Code für verschiedene Methoden zum Schreiben in XML-Dateien.

<!--MySQL-Batch-Einfügung-->
<insert id="batchInsertUser" databaseId="mysql">
   IN BENUTZER EINFÜGEN 
            (NAME, ALTER, GESCHLECHT)
   WERTE
    <foreach-Sammlung="Benutzerliste" index="index" item="Benutzer" separator=",">
            (#{Benutzername},#{Benutzeralter},#{Benutzergeschlecht})
  </foreach>
</einfügen>
<!--Oracle Batch-Einfügung-->
<insert id="batchInsertUser" databaseId="oracle">
  BEGINNEN
  <foreach-Sammlung="Benutzerliste" index="index" item="Benutzer" separator=";">
   IN BENUTZER EINFÜGEN 
            (NAME, ALTER, GESCHLECHT)
   WERTE
            (#{Benutzername},#{Benutzeralter},#{Benutzergeschlecht})
  </foreach>
  ;ENDE;
</einfügen>

Beachten Sie die Schreibmethoden von MySQL und Oracle sorgfältig, da MySQL das oben erwähnte direkte Einfügen mehrerer Daten nach VALUES unterstützt. Das foreach-Tag muss nur den Inhalt nach VALUES() durchlaufen; Oracle unterstützt diese Schreibmethode nicht und muss daher die gesamte INSERT-Anweisung durchlaufen.

<!--Allgemeines Batch-Einfügen-->
<insert id="batchInsertUser" databaseId="mysql">
   IN BENUTZER EINFÜGEN 
            (NAME, ALTER, GESCHLECHT)
  <foreach-Sammlung="Benutzerliste" index="index" item="Benutzer" separator="union all">
     WÄHLEN
            (#{Benutzername},#{Benutzeralter},#{Benutzergeschlecht})
     VON DUAL
  </foreach>
</einfügen>

Zusammenfassen

Dies ist das Ende dieses Artikels über die allgemeine Schreibmethode von MySQL- und Oracle-Batch-Insert-SQL. Weitere relevante MySQL- und Oracle-Batch-Insert-SQL-Inhalte finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Probleme und Lösungen beim Ersetzen von Oracle durch MySQL
  • Echtzeit-Datensynchronisierung von MySQL mit Oracle

<<:  Zusammenfassung relevanter Erkenntnisse zur Umsetzung adaptiven Webdesigns

>>:  Detaillierte Erklärung des Befehls mkdir beim Linux-Lernen

Artikel empfehlen

3 Möglichkeiten zum Erstellen von JavaScript-Objekten

Inhaltsverzeichnis 1. Objektliterale 2. Das neue ...

Vue Storage enthält eine Lösung für Boolesche Werte

Vue speichert Speicher mit Booleschen Werten Ich ...

Detaillierte Erklärung des Linux-Befehls unzip

Inhaltsverzeichnis 1. Unzip-Befehl 1.1 Syntax 1.2...

Mehrere Möglichkeiten zum Wechseln zwischen Vue Tab und Cache-Seiten

Inhaltsverzeichnis 1. So wechseln Sie 2. Register...

So installieren Sie Docker mithilfe von Skripten unter Linux Centos

Was ist die Hauptfunktion von Docker? Derzeit gib...

So verwenden Sie Nginx, um domänenübergreifende Front-End-Probleme zu lösen

Vorwort Bei der Entwicklung statischer Seiten, wi...

Implementierung eines einfachen Altersrechners auf Basis von HTML+JS

Inhaltsverzeichnis Vorwort Demonstrationseffekt H...

Anweisungen zum Erlernen von Vue

Inhaltsverzeichnis 1. v-Text (v-Befehlsname = „Va...

So erstellen Sie ein Drag & Drop-Plugin mit benutzerdefinierten Vue-Direktiven

Wir alle kennen die Drag-and-Drop-Funktion von HT...

Farbverlaufseffekt im HTML-Hintergrund durch CSS-Stil erreicht

Screenshots der Effekte: Implementierungscode: Cod...

Lösung für die Lücke zwischen Divs

Wenn Sie HTML-Div-Blöcke verwenden und die Mitte ...

Ursachenanalyse und Lösung des E/A-Fehlers beim Löschen einer MySQL-Tabelle

Problemphänomen Ich habe kürzlich Sysbench verwen...