MySQL After Insert Trigger Updates Another Table's Lajur
Apabila membuat permintaan tempahan, anda perlu mengemas kini status dalam jadual BookingRequest berdasarkan pemasukan permintaan yang sepadan ke dalam jadual OccupiedRoom. Untuk mencapai matlamat ini, pencetus diperlukan.
Untuk bermula, takrifkan jadual berikut:
-- Jadual Permintaan Tempahan:
BUAT JADUAL Permintaan Tempahan (
idRequest INT NOT NULL AUTO_INCREMENT, roomClass INT NOT NULL, inDate DATE NOT NULL, outDate DATE NOT NULL, numOfBeds INT NOT NULL, status INT NOT NULL, idUser INT NOT NULL, PRIMARY KEY (idRequest), INDEX idx_status (status), INDEX idx_user (idUser)
);
-- Status jadual:
BUAT Status JADUAL (
idStatus INT NOT NULL AUTO_INCREMENT, nameStatus ENUM('underConsideration', 'approved', 'rejected'), PRIMARY KEY (idStatus)
);
-- Jadual OccupiedRoom:
BUAT MEJA OccupiedRoom (
idOccupation INT NOT NULL AUTO_INCREMENT, idRoom INT NOT NULL, idRequest INT NOT NULL, PRIMARY KEY (idOccupation), INDEX idx_id_room (idRoom), INDEX idx_id_request (idRequest)
);
Sekarang, mari tulis pencetus:
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 ;
Begini cara ia berfungsi:
Atas ialah kandungan terperinci Bagaimana untuk Mengemas kini Status Permintaan Tempahan Selepas Memasukkan ke OccupiedRoom Menggunakan Trigger MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!