Ergebnis 1 bis 6 von 6

Baum-Darstellung

  1. #3
    Be root - Use Linux Avatar von H4x0r007
    Registriert seit
    27.06.2007
    Beiträge
    1.878

    Standard AW: INSERT INTO über mehrere Tabellen

    Ich würde die verschiedenen Inserts auf jeden Fall in eine Transaktion packen, denn nach dem ersten Insert und vor den nachfolgenden ist die Datenbank in einem inkonsistenten Zustand. Man muss bei einer Datenbank immer damit rechnen, dass ein anderer Prozess gerade diese Daten lesen möchte.

    Ich wusste bisher auch nicht, wie das in MySQL funktioniert, weil ich die Funktion LAST_INSERT_ID() nicht kannte. Auf Stackoverflow habe ich allerdings dieses Snippet gefunden:
    Code:
    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;
    BEGIN und COMMIT begrenzen die Transaktion und zwischendrin kannst du deine Inserts machen. Während der Transaktion kann kein anderer Nutzer der Datenbank auf die noch inkonststenten Daten zugreifen.

    //edit: Du könntest vermutlich auch zuerst in einem Query die Transaktion beginnen und einen Insert ausführen, dir in PHP die insert_id merken und später die anderen Queries per PHP-Befehl absetzen. Denke nur an das COMMIT; am Ende
    Geändert von H4x0r007 (20.04.2017 um 09:54 Uhr)
    Bald 14 Jahre auf Free-Hack. Krass wie die Zeit vergeht...
    "Drei Dinge sind unendlich - das Universum, die menschliche Dummheit und die WinRAR-Testversion"

Ähnliche Themen

  1. INSERT INTO
    Von NetteMann im Forum SQL
    Antworten: 2
    Letzter Beitrag: 15.10.2007, 12:31

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •