„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie füge ich Daten gleichzeitig in mehrere MySQL-Tabellen ein?

Wie füge ich Daten gleichzeitig in mehrere MySQL-Tabellen ein?

Veröffentlicht am 21.12.2024
Durchsuche:453

How to Insert Data into Multiple MySQL Tables Simultaneously?

MySQL-Einfügung in mehrere Tabellen: Datenbanknormalisierung

Das gleichzeitige Einfügen von Daten in mehrere Tabellen in MySQL wird nicht direkt unterstützt. Es gibt jedoch alternative Ansätze, um diese Funktionalität zu erreichen.

Transaktionen verwenden

Um die Datenkonsistenz über Tabellen hinweg sicherzustellen, wird die Verwendung von Transaktionen empfohlen. Transaktionen kapseln eine Reihe von Abfragen als eine einzige Einheit und stellen so sicher, dass alle Abfragen gemeinsam erfolgreich sind oder fehlschlagen.

Hier ist ein Beispiel für die Verwendung von Transaktionen:

BEGIN;
INSERT INTO users (username, password) VALUES('test', 'test');
INSERT INTO profiles (userid, bio, homepage) VALUES(LAST_INSERT_ID(),'Hello world!', 'http://www.stackoverflow.com');
COMMIT;

Abrufen des Auto-Inkrement-Werts

Um die Auto-Inkrement-ID aus der Benutzertabelle in die Profiltabelle einzufügen, können Sie die Funktion LAST_INSERT_ID() verwenden . Wenn die nachfolgende Einfügeanweisung jedoch in eine Tabelle mit einer eigenen Spalte für die automatische Inkrementierung einfügt, wird der LAST_INSERT_ID()-Wert auf den Wert dieser Tabelle aktualisiert.

Um den ursprünglichen LAST_INSERT_ID()-Wert beizubehalten, können Sie ihn speichern es in einer benutzerdefinierten Variablen innerhalb der Transaktion.

Verwenden von MySQL-Variablen:

INSERT ...
SELECT LAST_INSERT_ID() INTO @mysql_variable_here;
INSERT INTO table2 (@mysql_variable_here, ...);

Verwenden von Sprachvariablen:

// PHP example
$mysqli->query("INSERT INTO table1 ...");
$userid = $mysqli->insert_id;
$mysqli->query("INSERT INTO table2 ($userid, ...)");

Achtung

Es ist wichtig, beim Einfügen in die Datenbankkonsistenz zu berücksichtigen mehrere Tische. Bei einer Unterbrechung stellen Transaktionen sicher, dass alle Abfragen entweder vollständig oder gar nicht ausgeführt werden. Ohne Transaktionen kann es bei Teileinfügungen zu Inkonsistenzen kommen.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3