Rumah > pangkalan data > tutorial mysql > Bagaimanakah saya boleh memasukkan data ke dalam beberapa jadual serentak dalam MySQL?

Bagaimanakah saya boleh memasukkan data ke dalam beberapa jadual serentak dalam MySQL?

Linda Hamilton
Lepaskan: 2024-11-19 01:33:02
asal
311 orang telah melayarinya

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

Memasukkan Data ke dalam Berbilang Jadual Serentak

Memasukkan data ke dalam dua jadual serentak boleh dicapai dalam MySQL, walaupun ia memerlukan pendekatan yang berbeza berbanding dengan pernyataan SQL yang disediakan.

Pertanyaan yang disediakan cuba memasukkan data ke dalam kedua-dua jadual lawatan dan pendaftaran dalam satu operasi. Walau bagaimanapun, ini tidak disokong secara langsung oleh MySQL kerana pernyataan INSERT hanya boleh menyasarkan satu jadual pada satu masa. Untuk mencapai hasil yang diingini, anda mempunyai pilihan berikut:

Pemprosesan Kelompok

Lakukan dua pertanyaan INSERT berasingan sebagai satu kelompok:

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;
Salin selepas log masuk

Prosedur Tersimpan

Buat prosedur tersimpan yang merangkum kedua-dua operasi sisipan:

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;
Salin selepas log masuk

Anda kemudiannya boleh menggunakan prosedur tersimpan dengan parameter yang dikehendaki:

CALL insert_into_tables(12131141, 'in', UNIX_TIMESTAMP());
Salin selepas log masuk

Pengurusan Transaksi

Untuk pastikan kedua-dua operasi sisipan dilakukan secara atom, bungkusnya dalam a transaksi:

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;
Salin selepas log masuk

Dengan menggunakan pendekatan ini, anda boleh memasukkan data ke dalam berbilang jadual serentak dalam MySQL.

Atas ialah kandungan terperinci Bagaimanakah saya boleh memasukkan data ke dalam beberapa jadual serentak dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan