Rumah >pangkalan data >tutorial mysql >Bagaimana Menggunakan Pencetus MySQL untuk Memasukkan Baris ke dalam Jadual Lain?
Memasukkan Baris ke dalam Jadual lain menggunakan MySQL Trigger
Dalam sistem pengurusan pangkalan data hubungan seperti MySQL, pencetus memainkan peranan penting dalam mengautomasikan tindakan pangkalan data tertentu sebagai tindak balas kepada peristiwa tertentu, seperti sisipan data, pemadaman atau pengubahsuaian. Dalam konteks ini, mari kita mendalami topik mencipta pencetus yang memasukkan baris ke dalam jadual lain selepas sisipan baris dalam jadual tertentu.
Memahami Isu
The matlamatnya adalah untuk mencipta pencetus MySQL pada jadual "komen" yang memantau setiap acara sisipan baris. Apabila baris ulasan baharu dimasukkan, pencetus harus melaksanakan tugas berikut:
Struktur Pencetus
Struktur asas pencetus untuk melaksanakan fungsi ini melibatkan perkara berikut:
CREATE TRIGGER <trigger_name> AFTER INSERT ON <source_table> FOR EACH ROW BEGIN -- Retrieve the ID of the newly inserted row DECLARE last_insert_id INT; SET last_insert_id = LAST_INSERT_ID(); -- Insert data into the "activities" table INSERT INTO <target_table> (column_list) VALUES (new.column1, new.column2, ..., last_insert_id); END
Pencetus Pelaksanaan
Untuk menunjukkan pelaksanaan, pertimbangkan perkara berikut contoh:
-- Create the "comments" and "activities" tables CREATE TABLE comments ( comment_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, user_id INT UNSIGNED NOT NULL ) ENGINE=INNODB; CREATE TABLE activities ( activity_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, comment_id INT UNSIGNED NOT NULL, user_id INT UNSIGNED NOT NULL ) ENGINE=INNODB; -- Create the trigger to insert data into the "activities" table CREATE TRIGGER comments_after_ins_trig AFTER INSERT ON comments FOR EACH ROW BEGIN -- Retrieve the ID of the newly inserted comment row DECLARE last_insert_id INT; SET last_insert_id = LAST_INSERT_ID(); -- Insert data into the "activities" table INSERT INTO activities (comment_id, user_id) VALUES (new.comment_id, new.user_id); END; -- Insert some data into the "comments" table INSERT INTO comments (user_id) VALUES (1), (2); -- Query the "comments" and "activities" tables to observe the results SELECT * FROM comments; SELECT * FROM activities;
Setelah melaksanakan pertanyaan, anda akan mendapati bahawa untuk setiap baris ulasan yang dimasukkan ke dalam jadual "ulasan", baris yang sepadan dimasukkan secara automatik ke dalam jadual "aktiviti". Ini menunjukkan keberkesanan pencetus dalam mencapai hasil yang diinginkan.
Atas ialah kandungan terperinci Bagaimana Menggunakan Pencetus MySQL untuk Memasukkan Baris ke dalam Jadual Lain?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!