>데이터 베이스 >MySQL 튜토리얼 >삽입 후 트리거를 사용하여 MySQL에서 테이블 열을 올바르게 업데이트하는 방법은 무엇입니까?

삽입 후 트리거를 사용하여 MySQL에서 테이블 열을 올바르게 업데이트하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-26 07:23:11921검색

How to Correctly Update a Table Column in MySQL Using an After Insert Trigger?

다른 테이블의 열을 업데이트하기 위해 트리거를 삽입한 후의 MySQL

이 쿼리는 BookingRequest 테이블의 열을 업데이트하는 MySQL의 트리거를 생성하려고 시도합니다. OccupiedRoom 테이블에 행이 삽입될 때. 그러나 제공된 트리거가 의도한 대로 작동하지 않습니다.

이 문제를 해결하려면 다음과 같은 수정된 버전의 트리거를 사용하세요.

DELIMITER $$
CREATE TRIGGER 점유_trig
AFTER 각각에 대해 OccupiedRoom에 삽입 행
시작

   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;

끝;

$$ 구분 기호 ; **트리거 세부정보:** * 트리거는 'AFTER INSERT' 절을 사용하여 정의됩니다. 즉, 'OccupiedRoom' 테이블에 행이 삽입된 후에 실행된다는 의미입니다. * 트리거는 'FOR EACH ROW' 절을 사용하여 삽입된 각 행을 개별적으로 처리합니다. * 트리거 본체 내부: * 삽입된 `OccupiedRoom` 행의 `idRequest`가 `BookingRequest` 테이블에 존재하는지 확인하기 위해 부울 변수 `@id_exists`를 선언합니다. * 새로 삽입된 'OccupiedRoom' 행의 'idRequest'가 존재하는지 확인하기 위해 'BookingRequest' 테이블을 확인합니다. 그렇다면 `@id_exists`를 `1`로 설정합니다. * `@id_exists`가 `1`인 경우 `BookingRequest` 테이블의 `status` 열을 '1'로 업데이트합니다. 여기서 `idRequest`는 `OccupiedRoom` 테이블의 새 `idRequest`와 일치합니다.

위 내용은 삽입 후 트리거를 사용하여 MySQL에서 테이블 열을 올바르게 업데이트하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.