Bagaimana untuk Mencipta Trigger MySQL untuk Memasukkan Data ke dalam Jadual Lain Selepas INSERT?

Susan Sarandon
Lepaskan: 2024-11-26 20:02:10
asal
520 orang telah melayarinya

How to Create a MySQL Trigger to Insert Data into Another Table After an INSERT?

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;
Salin selepas log masuk

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 ;
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan