Heim >Datenbank >MySQL-Tutorial >Wie füge ich in MySQL Daten gleichzeitig in mehrere Tabellen ein?

Wie füge ich in MySQL Daten gleichzeitig in mehrere Tabellen ein?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-11 21:35:03655Durchsuche

How to Insert Data into Multiple Tables Simultaneously in MySQL?

Einfügen in mehrere Tabellen in MySQL

In diesem Szenario besteht das Ziel darin, Daten gleichzeitig in zwei Tabellen einzufügen: Besuche und Registrierung. Während eine einzelne INSERT-Anweisung normalerweise Daten in eine Tabelle einfügen kann, ist dies in diesem Fall nicht möglich.

Um dieser Herausforderung zu begegnen, gibt es zwei praktikable Optionen:

1. Batch-Einfügung:

Unterteilen Sie die Einfügung in zwei unterschiedliche INSERT-Anweisungen und führen Sie sie als Batch aus. Bei diesem Ansatz wird der EXECUTE-Befehl wie folgt verwendet:

START 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;

2. Gespeicherte Prozedur:

Erstellen Sie eine gespeicherte Prozedur, die die beiden INSERT-Anweisungen kapselt. Dadurch können Sie beide Einfügungen mit einem einzigen Prozeduraufruf ausführen. Betrachten Sie das folgende Beispiel:

CREATE PROCEDURE insert_into_multiple_tables(
    IN visit_card_id INT,
    IN registration_type ENUM('in', 'out')
)
BEGIN
    # Insert into `visits` table
    INSERT INTO visits (visit_id, card_id) VALUES (NULL, visit_card_id);
    
    # Insert into `registration` table
    INSERT INTO registration (registration_id, type, timestamp, visit_id) 
    VALUES (NULL, registration_type, UNIX_TIMESTAMP(), LAST_INSERT_ID());
END;

Um die gespeicherte Prozedur aufzurufen, verwenden Sie die folgende Syntax:

CALL insert_into_multiple_tables(12131141, 'in');

Sowohl die Stapeleinfügungsmethode als auch die Methode der gespeicherten Prozedur bieten zuverlässige Möglichkeiten zum Einfügen von Daten in mehrere Tische. Die Wahl zwischen beiden hängt von den spezifischen Anwendungsanforderungen und Leistungsaspekten ab.

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

Stellungnahme:
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