Rumah >pangkalan data >tutorial mysql >Bagaimanakah saya boleh memasukkan data ke dalam beberapa jadual serentak dalam 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;
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;
Anda kemudiannya boleh menggunakan prosedur tersimpan dengan parameter yang dikehendaki:
CALL insert_into_tables(12131141, 'in', UNIX_TIMESTAMP());
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;
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!