트리거로 인해 INSERT가 실패할 수 있나요?
MySQL에서 BEFORE INSERT와 같은 트리거는 테이블에 데이터를 삽입하기 전에 데이터를 수정할 수 있습니다. 그러나 유효성 검사 오류로 인해 INSERT 작업이 성공하는 것을 막을 수 있는지 즉시 알 수는 없습니다.
MySQL Trickery
그러나 블로그 게시물에서는 이 제한을 피하십시오. 예를 들어, MySQL 5.0 또는 5.1 트리거는 존재하지 않는 열에 대한 액세스를 강제로 시도하여 오류를 트리거하고 INSERT 작업을 중단할 수 있습니다.
트리거 예시
이 트릭을 사용하는 예제 트리거는 다음과 같습니다.
CREATE TRIGGER mytabletriggerexample BEFORE INSERT FOR EACH ROW BEGIN IF(NEW.important_value) < (fancy * dancy * calculation) THEN DECLARE dummy INT; SELECT Your meaningful error message goes here INTO dummy FROM mytable WHERE mytable.id=new.id END IF; END;
다른 RDBMS
MySQL의 솔루션에는 해결 방법이 포함되어 있지만 다른 RDBMS는 INSERT 실패에 대한 보다 직접적인 방법을 제공할 수 있습니다.
THROW EXCEPTION
예를 들어 Microsoft SQL Server에는 THROW EXCEPTION 구문이 포함되어 있습니다. 이를 통해 트리거는 INSERT 작업을 중단할 수 있는 예외를 발생시킬 수 있습니다.
db2
db2는 INSERT를 종료할 수 있는 사용자 정의 조건을 알리는 SIGNAL 문을 지원합니다.
참고: 이러한 기술은 INSERT에 실패하는 트리거의 능력을 보여 주지만 주의를 기울이고 성능에 미치는 영향을 고려하는 것이 중요합니다.
위 내용은 트리거가 MySQL에서 INSERT 작업을 방지할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!