Memprogramkan Pencetus MySQL untuk Memasukkan Data ke dalam Jadual Lain
Pencetus MySQL membenarkan pelaksanaan tindakan yang dipratentukan apabila peristiwa tertentu berlaku dalam jadual pangkalan data . Dalam kes ini, matlamatnya ialah untuk mencipta pencetus yang memasukkan baris ke dalam jadual lain apabila baris dimasukkan ke dalam jadual tertentu.
Cara Merebut ID Baris Terakhir Disisipkan
Untuk menangkap ID baris terakhir yang dimasukkan, anda perlu menggunakan fungsi LAST_INSERT_ID() dalam pencetus. Fungsi ini mengembalikan ID baris yang paling baru disisipkan.
Menyimpan Data daripada Baris Terakhir Disisipkan untuk Digunakan dalam Penyata INSERT
Untuk menyimpan data daripada yang terakhir dimasukkan dengan betul baris ulasan, ia boleh disimpan dalam pembolehubah tempatan dalam pencetus. Contohnya, jika lajur ID pengguna dinamakan user_id dan lajur teks ulasan dinamakan comment_text, anda boleh menggunakan sintaks berikut:
DECLARE user_id INTEGER; DECLARE comment_text VARCHAR(255); SET user_id = NEW.user_id; SET comment_text = NEW.comment_text;
Menggunakan Prosedur Tersimpan
Walaupun pencetus berguna untuk melakukan tindakan secara automatik sebagai tindak balas kepada peristiwa tertentu, ia terhad dalam fungsi dan mungkin tidak sesuai untuk operasi yang kompleks. Dalam kes sedemikian, adalah disyorkan untuk menggunakan gabungan pencetus dan prosedur tersimpan.
Struktur Pencetus
Struktur asas pencetus akan menyerupai yang berikut:
DELIMITER $$ CREATE TRIGGER comments_after_ins_trig AFTER INSERT ON comments FOR EACH ROW BEGIN -- Grab the ID of the last inserted row SET @last_inserted_id = LAST_INSERT_ID(); -- Store data from the last inserted row into local variables SET @user_id = NEW.user_id; SET @comment_text = NEW.comment_text; -- Perform the INSERT into the activities table INSERT INTO activities (user_id, comment_text) VALUES (@user_id, @comment_text); END; $$ DELIMITER ;
Atas ialah kandungan terperinci Bagaimana untuk Mencipta Trigger MySQL untuk Memasukkan Data ke dalam Jadual Lain Selepas INSERT?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!