트리거 정의에서 삽입, 업데이트 또는 삭제되는 행의 열을 참조할 수 있다는 것을 알고 있습니다. 다음은 OLD 및 NEW 키워드를 사용하여 열에 액세스하는 방법입니다 -
-
원래 행의 값을 참조하려면 열 이름 앞에 OLD 한정자를 붙여야 합니다.
-
새 행의 값을 참조하려면 열 이름 앞에 NEW 한정자를 붙여야 합니다.
이제 이벤트를 발생시키기 때문에 OLD와 NEW를 적절히 사용해야 합니다.
어느 것이 허용되는지 결정합니다 -
-
INSERT 트리거에서 NEW.column_name은 새 행에 삽입할 열 값을 나타냅니다. 여기서 OLD는 허용되지 않습니다.
-
DELETE 트리거에서 OLD.column_name은 삭제할 행의 열 값을 나타냅니다. 여기서 NEW는 허용되지 않습니다.
-
UPDATE 트리거에서 OLD.column_name 및 NEW.column_name은 각각 행이 업데이트되기 전과 후에 행의 열 값을 참조합니다.
즉, OLD는 읽기 전용 방식으로 사용해야 하고 NEW는 열 값을 읽거나 변경하는 데 사용할 수 있다고 말할 수 있습니다.
트리거에서 키워드 OLD 사용
DELETE 트리거의 예는 OLD −
의 사용을 보여줍니다.mysql> CREATE TRIGGER studentinfo_after_delete -> AFTER DELETE -> ON student_info -> FOR EACH ROW FOLLOWS -> BEGIN -> DECLARE vuser varchar(30); -> SELECT USER() into vuser; -> INSERT INTO student_info_deleted(id,deleted_date,deleted_by) VALUES(OLD.id,SYSDATE(),vuser); -> END; // Query OK, 0 rows affected (0.25 sec)
트리거에서 키워드 NEW 사용
INSERT 트리거의 예는 NEW −
의 사용을 보여줍니다.mysql> Create Trigger before_inser_studentage BEFORE INSERT ON student_age FOR EACH ROW BEGIN IF NEW.age < 0 THEN SET NEW.age = 0; END IF; END // Query OK, 0 rows affected (0.30 sec)