트리거를 사용하여 INSERT에 실패할 수 있나요?
MySQL에서 트리거에는 삽입 및 업데이트 전에 데이터를 수정할 수 있는 기능이 있습니다. 그러나 이러한 트리거는 해당 삽입 또는 업데이트 작업의 실패를 직접적으로 유발할 수 없으므로 유효성 검사에 대한 우려가 있는 것으로 나타났습니다.
이러한 제한은 MySQL 내에 특정 예외 처리 메커니즘이 없기 때문에 발생합니다. 트리거. SQL 표준에서는 오류 처리를 위한 SIGNAL 및 RESIGNAL 문을 정의하지만 MySQL에서는 아직 구현되지 않았습니다.
그러나 SQL 내에 존재하지 않는 열을 강제로 사용하려고 시도하여 이 기능을 에뮬레이트하는 해결 방법이 개발되었습니다. 방아쇠. 이로 인해 MySQL 내에서 오류가 발생하며, 이는 실패한 작업을 나타내는 데 사용될 수 있습니다. 다음 코드는 이 기술을 보여줍니다.
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;
이 트리거는 important_value 열을 평가하고 필요한 계산을 수행합니다. 조건이 충족되지 않으면 존재하지 않는 열에서 데이터를 선택하려고 시도하여 오류가 발생하고 삽입 작업이 실패하게 됩니다.
위 내용은 MySQL 트리거가 INSERT 실패를 직접 일으킬 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!