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
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. .
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