반응형
MySQL의 특정 열을 업데이트한 후 트리거 실행
MySQL에서 특정 열을 업데이트한 후 트리거를 실행하려고 합니다.
Oracle 및 DB2에서 이를 수행하는 방법을 알고 있습니다.
CREATE TRIGGER myTrigger
AFTER UPDATE of myColumn1,myColumn2 ... ON myTable
FOR EACH ROW
BEGIN
....
END
MySQL로 어떻게 합니까?
SQL의 특정 열 업데이트에 대해 트리거할 수 없습니다.그것은 한 줄에 적용됩니다.
다음을 사용하여 열에 대한 조건을 트리거에 넣을 수 있습니다.IF
아래와 같은 문장:
DELIMITER //
CREATE TRIGGER myTrigger AFTER UPDATE ON myTable
FOR EACH ROW
BEGIN
IF !(NEW.column1 <=> OLD.column1) THEN
--type your statements here
END IF;
END;//
DELIMITER ;
특정 열 변경에 대해서만 실행하도록 지정할 수는 없습니다.그러나 테이블의 레코드 변경에 대해 수행할 수 있습니다.
delimiter |
CREATE TRIGGER myTrigger AFTER UPDATE ON myTable
FOR EACH ROW
BEGIN
...
END
|
delimiter ;
트리거에서 다음과 같은 열의 이전 및 새 내용을 참조할 수 있습니다.
if NEW.column1 <> OLD.column1 ...
해결책으로, 저는 그렇게 했습니다.
CREATE TRIGGER myTrigger
AFTER UPDATE ON myTable
FOR EACH ROW
BEGIN
IF NEW.myColumn1 <> OLD.myColumn1 || NEW.myColumn2 <> OLD.myColumn2
then
.....
END IF
END
언급URL : https://stackoverflow.com/questions/19152974/fire-a-trigger-after-the-update-of-specific-columns-in-mysql
반응형
'source' 카테고리의 다른 글
USB 장치의 데이터베이스 (0) | 2023.09.03 |
---|---|
사용자의 로케일 형식 및 시간 오프셋으로 날짜/시간 표시 (0) | 2023.09.03 |
SPA 프런트엔드를 위한 Spring Framework 5.3+, Spring Boot 2.3+ 라우팅 구성 (0) | 2023.09.03 |
Galera 클러스터가 있는 MariaDB에서 파티션 회전 (0) | 2023.09.03 |
최대 절전 모드 Dao 지원이 권장되지 않는 이유는 무엇입니까? (0) | 2023.09.03 |