„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 kann ich Daten in einer Transaktion effizient in mehrere MySQL -Tabellen einfügen?

Wie kann ich Daten in einer Transaktion effizient in mehrere MySQL -Tabellen einfügen?

Gepostet am 2025-06-14
Durchsuche:551

How to Efficiently Insert Data into Multiple MySQL Tables in a Single Transaction?

mySql Einfügen in mehrere Tabellen

versuchen, Daten mit einer einzelnen MySQL -Abfrage in mehrere Tabellen einzufügen. Während es so aussehen mag, als würden mehrere Abfragen das Problem lösen und die automatische Inkrement-ID aus der Benutzertabelle zur manuellen Benutzer-ID für die Profiltabelle eine Herausforderung darstellt. Einfügen in Benutzer (Benutzername, Kennwort) Werte ("Test", "Test"); In Profile (UserID, Bio, Homepage) Werte (last_insert_id (), 'Hello World!', 'Http://www.stackoverflow.com') einfügen; Commit;

beginnen eine Transaktion mit "begin;".

in die erste tabelle einfügen und die automatische Inkrement-ID mit "last_insert_id () erfassen. "Commit;".

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;
speichern die automatische ID in einer Variablen
  • Alternativ und speichern die automatische ID in einer Variablen, sie in nachfolgenden Abfragen zu verweisen. Dies kann erreicht werden:
  • mysql variable:

in ... Wählen Sie last_insert_id () in @mysql_variable_here; Einfügen in Tabelle2 (@mysql_variable_here, ...);

php variable:
  • einfügen ... $ result = mysql_query ("SELECT last_insert_id ()"); $ id = mysql_result ($ result, 0); Einfügen in Tabelle 2 ($ id, ...);

    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;
    Transaktionsüberlegungen
  • Unabhängig von dem gewählten Ansatz betrachten Sie die potenziellen Auswirkungen der unterbrochenen Ausführung. In Ermangelung von Transaktionen kann in Ihrer Datenbank Inkonsistenz auftreten. Um dies zu verhindern, wickeln Sie die Einfügenanweisungen in eine Transaktion ein, wie oben gezeigt. .

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