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.
Verwendung von Transaktionen
Um die Datenkonsistenz über Tabellen hinweg sicherzustellen, wird empfohlen, Transaktionen zu verwenden. 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 automatischen Inkrements Wert
Um die Auto-Inkrement-ID aus der Benutzertabelle in die Profiltabelle einzufügen, können Sie die verwenden Funktion LAST_INSERT_ID(). 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.
Mit MySQL Variablen:
INSERT ... SELECT LAST_INSERT_ID() INTO @mysql_variable_here; INSERT INTO table2 (@mysql_variable_here, ...);
Verwendung von Sprachvariablen:
// PHP example $mysqli->query("INSERT INTO table1 ..."); $userid = $mysqli->insert_id; $mysqli->query("INSERT INTO table2 ($userid, ...)");
Vorsicht
Es ist wichtig Berücksichtigen Sie beim Einfügen in mehrere Tabellen die Datenbankkonsistenz. 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.
Das obige ist der detaillierte Inhalt vonWie füge ich Daten gleichzeitig in mehrere MySQL-Tabellen ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!