Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL은 트리거 실행 중 오류를 어떻게 처리할 수 있습니까?


트리거 실행 중에 오류가 발생하면 MySQL이 다음과 같이 처리할 수 있다고 가정합니다. -

  • BEFORE 트리거가 실패하면 해당 행에 대한 연산을 수행하지 않습니다.
  • BEFORE 트리거는 후속 시도의 성공 여부에 관계없이 행을 삽입하거나 수정하려는 시도에 의해 활성화됩니다.
  • AFTER 트리거는 BEFORE 트리거 및 행 작업이 성공적으로 실행되는 경우에만 실행됩니다.
  • BEFORE 또는 AFTER 트리거 중 오류가 발생하면 트리거 호출을 유발한 전체 명령문이 실패합니다.
  • 트랜잭션 테이블의 경우 명령문이 실패하면 명령문에서 수행한 모든 변경 사항이 롤백되어야 합니다. 트리거가 실패하면 명령문이 실패하므로 트리거 실패도 롤백을 유발합니다. 비트랜잭션 테이블의 경우 이러한 롤백을 수행할 수 없으므로 명령문이 실패하더라도 오류 지점 이전에 수행된 변경 사항은 그대로 유지됩니다.