반응형
특정 열을 업데이트 할 때 동일한 테이블 (같은 행)의 다른 열을 업데이트하는 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
반응형
'MySql' 카테고리의 다른 글
MySQL innoDB에서 MySQL LIKE '% string %'쿼리 최적화 (0) | 2021.02.14 |
---|---|
MySQL PHP 객관식 퀴즈 작성자 (0) | 2021.02.14 |
MySQL 느린 MySQL 성능 및 절전 쿼리 (0) | 2021.02.14 |
MySQL count ()에서 max () 선택 (0) | 2021.02.14 |
MySQL 테이블에있는 모든 레코드의 한 열에 대한 값 설정 (0) | 2021.02.13 |
댓글