본문 바로가기
MySql

MySQL 트리거 '열에 대한 업데이트'구문

by 베이스 공부 2021. 2. 14.
반응형

특정 열을 업데이트 할 때 동일한 테이블 (같은 행)의 다른 열을 업데이트하는 MySQL 트리거를 사용할 수 있습니까?

create trigger my_trigger
BEFORE UPDATE OF col1, col2 ON TABLE_NAME
for each row
set NEW.col3 =  NEW.col3 +1;

UPDATE OF col1, col2 를 사용하여 위의 코드를 시도했습니다. MySQL에서는 작동하지 않습니다. 올바른 구문은 무엇입니까, 누군가가 나를 몇 가지 예를 알려줄 수 있습니까?

 

해결 방법

 

트리거가 특정 열의 업데이트에서만 실행되도록 지정할 수는 없지만 ( UPDATE 는 전체 레코드에 영향을 미침) 트리거 내에서 업데이트 된 열을 테스트 할 수 있습니다.

DELIMITER ;;

CREATE TRIGGER my_trigger BEFORE UPDATE ON TABLE_NAME FOR EACH ROW
IF NOT (NEW.col1 <=> OLD.col1 AND NEW.col2 <=> OLD.col2) THEN
  SET NEW.col3 = NEW.col3 + 1;
END IF;;

DELIMITER ;

 

참조 페이지 https://stackoverflow.com/questions/10356967

 

 

반응형

댓글