source

MySQL의 특정 열을 업데이트한 후 트리거 실행

manycodes 2023. 9. 3. 16:23
반응형

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

반응형