> 데이터 베이스 > MySQL 튜토리얼 > MySQL 트리거가 INSERT 실패를 직접 일으킬 수 있습니까?

MySQL 트리거가 INSERT 실패를 직접 일으킬 수 있습니까?

Linda Hamilton
풀어 주다: 2024-11-18 08:37:02
원래의
332명이 탐색했습니다.

Can MySQL Triggers Directly Cause INSERT Failures?

트리거를 사용하여 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿