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 ;
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!