Rumah >pangkalan data >tutorial mysql >Bagaimanakah MySQL Mencetuskan Log Komen Pengguna dengan Cekap dengan Memasukkan Baris ke dalam Jadual Aktiviti Berasingan?
Memasukkan Baris ke dalam Jadual Lain Menggunakan Pencetus MySQL
Apabila menjejak aktiviti pengguna dalam pangkalan data, pencetus boleh menjadi alat yang berkuasa. Mereka membenarkan tindakan atau pengiraan tertentu berlaku secara automatik apabila perubahan dibuat pada jadual yang ditetapkan. Dalam senario ini, mencipta pencetus pada jadual ulasan akan merekodkan tindakan pengguna dengan memasukkan baris yang sepadan dalam jadual aktiviti.
Untuk mengenal pasti baris ulasan yang terakhir disisipkan, LAST_INSERT_ID() boleh digunakan. Fungsi ini mengembalikan nilai penambahan automatik lajur kunci utama dalam operasi sisipan terbaharu.
Data daripada baris ulasan yang terakhir disisipkan boleh disimpan menggunakan kata kunci BAHARU, yang merujuk kepada nilai yang baru dimasukkan. Sebagai contoh, untuk memasukkan user_id dan comment_id ulasan ke dalam jadual aktiviti, pernyataan INSERT berikut boleh digunakan:
INSERT INTO activities (comment_id, user_id) VALUES (NEW.comment_id, NEW.user_id);
Prosedur tersimpan boleh memberikan fleksibiliti tambahan, tetapi dalam kes ini, pencetus mudah sepatutnya mencukupi.
Struktur Pencetus
Struktur asas pencetus adalah seperti berikut:
CREATE TRIGGER <trigger_name> AFTER INSERT ON <table_name> FOR EACH ROW BEGIN -- Insert into activities table using the NEW keyword END
Contoh
Berikut ialah contoh lengkap cara melaksanakan pencetus sedemikian:
DROP TABLE IF EXISTS comments; CREATE TABLE comments ( comment_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, user_id INT UNSIGNED NOT NULL ) ENGINE=InnoDB; DROP TABLE IF EXISTS activities; 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; DELIMITER # CREATE TRIGGER comments_after_ins_trig AFTER INSERT ON comments FOR EACH ROW BEGIN INSERT INTO activities (comment_id, user_id) VALUES (NEW.comment_id, NEW.user_id); END# DELIMITER ; INSERT INTO comments (user_id) VALUES (1), (2); SELECT * FROM comments; SELECT * FROM activities;
Ini contoh mencipta jadual yang diperlukan, memasukkan beberapa data ke dalam jadual ulasan dan menunjukkan cara pencetus memasukkan baris yang sepadan ke dalam aktiviti meja.
Atas ialah kandungan terperinci Bagaimanakah MySQL Mencetuskan Log Komen Pengguna dengan Cekap dengan Memasukkan Baris ke dalam Jadual Aktiviti Berasingan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!