Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie kann ich in MySQL Daten gleichzeitig in mehrere Tabellen einfügen?

Linda Hamilton
Freigeben: 2024-11-19 01:33:02
Original
300 Leute haben es durchsucht

How Can I Insert Data into Multiple Tables Simultaneously in MySQL?

Gleichzeitiges Einfügen von Daten in mehrere Tabellen

Das gleichzeitige Einfügen von Daten in zwei Tabellen kann in MySQL erreicht werden, erfordert jedoch einen anderen Ansatz als die bereitgestellte SQL-Anweisung.

Die bereitgestellte Abfrage versucht, Daten in einem einzigen Vorgang sowohl in die Besuchs- als auch in die Registrierungstabelle einzufügen. Dies wird jedoch von MySQL nicht direkt unterstützt, da INSERT-Anweisungen jeweils nur auf eine Tabelle abzielen können. Um das gewünschte Ergebnis zu erzielen, haben Sie folgende Möglichkeiten:

Stapelverarbeitung

Zwei separate INSERT-Abfragen als Stapel ausführen:

BEGIN;

INSERT INTO visits (visit_id, card_id) VALUES (NULL, 12131141);
INSERT INTO registration (registration_id, type, timestamp, visit_id)
VALUES (NULL, 'in', UNIX_TIMESTAMP(), LAST_INSERT_ID());

COMMIT;
Nach dem Login kopieren

Gespeicherte Prozedur

Erstellen Sie eine gespeicherte Prozedur, die beide Einfügungen kapselt Operationen:

CREATE PROCEDURE insert_into_tables(
    IN card_id INT,
    IN type ENUM('in', 'out'),
    IN timestamp INT
)
BEGIN
    DECLARE visit_id INT;

    INSERT INTO visits (card_id) VALUES (card_id);
    SET visit_id = LAST_INSERT_ID();

    INSERT INTO registration (registration_id, type, timestamp, visit_id)
    VALUES (NULL, type, timestamp, visit_id);
END;
Nach dem Login kopieren

Sie können dann die gespeicherte Prozedur mit den gewünschten Parametern aufrufen:

CALL insert_into_tables(12131141, 'in', UNIX_TIMESTAMP());
Nach dem Login kopieren

Transaktionsverwaltung

Um sicherzustellen, dass beides Einfügevorgänge werden atomar ausgeführt, packen Sie sie in eine Transaktion ein:

BEGIN TRANSACTION;

INSERT INTO visits (visit_id, card_id) VALUES (NULL, 12131141);
INSERT INTO registration (registration_id, type, timestamp, visit_id)
VALUES (NULL, 'in', UNIX_TIMESTAMP(), LAST_INSERT_ID());

COMMIT;
Nach dem Login kopieren

Mit diesen Ansätzen können Sie Daten in mehrere Tabellen einfügen gleichzeitig in MySQL.

Das obige ist der detaillierte Inhalt vonWie kann ich in MySQL Daten gleichzeitig in mehrere Tabellen einfügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage