Rumah >pangkalan data >tutorial mysql >Bagaimanakah MySQL Mencetuskan Log Komen Pengguna dengan Cekap dengan Memasukkan Baris ke dalam Jadual Aktiviti Berasingan?

Bagaimanakah MySQL Mencetuskan Log Komen Pengguna dengan Cekap dengan Memasukkan Baris ke dalam Jadual Aktiviti Berasingan?

Susan Sarandon
Susan Sarandonasal
2024-12-01 06:15:15851semak imbas

How Can MySQL Triggers Efficiently Log User Comments by Inserting Rows into a Separate Activities Table?

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!

Kenyataan:
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