Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mencipta Pencetus untuk Mengemas kini Lajur dalam Jadual Lain Berdasarkan Operasi INSERT?
Pencetus untuk Kemas Kini Lajur Jadual Lain
Dalam pangkalan data anda, anda mempunyai tiga jadual: BookingRequest, status dan OccupiedRoom. Anda ingin mencipta pencetus yang menukar lajur status dalam jadual BookingRequest kepada '1' apabila permintaan dengan ID yang sama ditambahkan pada jadual OccupiedRoom.
Anda pernah mencuba pencetus berikut:
create trigger occupy_trig after insert on OccupiedRoom for each row begin if BookingRequest.idRequest= NEW.idRequest then update BookingRequest set status = '1'; where idRequest = NEW.idRequest; end if; END;
Namun, ia tidak berjaya. Berikut ialah versi diubah suai yang sepatutnya berfungsi:
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 ;
Penjelasan:
Atas ialah kandungan terperinci Bagaimana untuk Mencipta Pencetus untuk Mengemas kini Lajur dalam Jadual Lain Berdasarkan Operasi INSERT?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!