트리거 삽입 후 MySQL이 다른 테이블의 열을 업데이트함
예약 요청을 생성할 때 다음을 기반으로 BookingRequest 테이블의 상태를 업데이트해야 합니다. OccupiedRoom 테이블에 해당 요청을 삽입합니다. 이를 달성하려면 트리거가 필요합니다.
먼저 다음 테이블을 정의합니다.
<br> -- BookingRequest 테이블:<br> CREATE TABLE BookingRequest(</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">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)
);
-- 상태 테이블:
CREATE TABLE 상태(
idStatus INT NOT NULL AUTO_INCREMENT, nameStatus ENUM('underConsideration', 'approved', 'rejected'), PRIMARY KEY (idStatus)
);
-- OccupiedRoom 테이블:
CREATE TABLE 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)
);
pre>
이제 다음을 작성해 보겠습니다. 트리거:
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 ;
작동 방식은 다음과 같습니다.
위 내용은 MySQL 트리거를 사용하여 OccupiedRoom에 삽입한 후 BookingRequest 상태를 업데이트하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!