Bagaimana untuk Mencipta Trigger MySQL untuk Mengemas kini Lajur Jadual Berbeza Selepas Sisipan?

Patricia Arquette
Lepaskan: 2024-11-24 04:12:11
asal
256 orang telah melayarinya

How to Create a MySQL Trigger to Update a Different Table's Column After an Insert?

MySQL Trigger untuk Mengemas kini Lajur Jadual Berbeza selepas Sisipan

Soalan ini melibatkan penciptaan pencetus MySQL yang mengemas kini lajur status dalam jadual BookingRequest berdasarkan pada sisipan baris ke dalam jadual OccupiedRoom.

Awal kod pencetus cuba mengemas kini terus jadual BookingRequest menggunakan perbandingan antara BookingRequest.idRequest dan NEW.idRequest. Walau bagaimanapun, pendekatan ini tidak berjaya.

Untuk menyelesaikan isu ini dan mencipta pencetus berfungsi, kod di bawah harus digunakan:

DELIMITER $$
CREATE TRIGGER occupy_trig
AFTER INSERT ON `OccupiedRoom` FOR EACH ROW
begin
       DECLARE id_exists Boolean;
       -- Check BookingRequest table
       SELECT 1
       INTO @id_exists
       FROM BookingRequest
       WHERE BookingRequest.idRequest= NEW.idRequest;

       IF @id_exists = 1
       THEN
           UPDATE BookingRequest
           SET status = '1'
           WHERE idRequest = NEW.idRequest;
        END IF;
END;
$$
DELIMITER ;
Salin selepas log masuk

Pencetus ini menggunakan pembolehubah @id_exists untuk menyemak sama ada idRequest daripada jadual OccupiedRoom wujud dalam jadual BookingRequest. Jika ya, ia menetapkan lajur status dalam jadual BookingRequest kepada '1'.

Dengan menggunakan ruang letak BARU dalam pencetus, perbandingan kini dilakukan dengan betul antara idRequest baris yang disisipkan dan idRequest yang sepadan dalam Jadual Permintaan Tempahan.

Atas ialah kandungan terperinci Bagaimana untuk Mencipta Trigger MySQL untuk Mengemas kini Lajur Jadual Berbeza Selepas Sisipan?. 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