사실 MySQL SIGNAL 문은 예상치 못한 이벤트를 처리하고 필요할 때 애플리케이션을 정상적으로 종료하는 데 사용되는 오류 처리 메커니즘입니다. 기본적으로 핸들러에 오류 정보를 제공합니다. 기본 구문은 다음과 같습니다. -
SIGNAL SQLSTATE | condition_value [SET signal_information_item = value_1,[, signal_information_item] = value_2, etc;]
여기서 SIGNAL 키워드는 SQLSTATE 값 또는 DECLARE CONDITION 문에서 선언한 조건 이름입니다. SIGNAL 문은 항상 SQLSTATE 값 또는 SQLSTATE 값을 사용하여 정의된 명명된 조건을 지정해야 합니다. SIGNAL 문의 SQLSTATE 값은 5자리 영숫자 코드로 구성됩니다. "00"으로 자체 SQLSTATE 코드를 시작할 수 없습니다. 왜냐하면 이러한 값은 성공을 나타내고 오류 신호에 영향을 주지 않기 때문입니다. 값이 유효하지 않으면 Bad SQLSTATE 오류가 발생합니다. 모든 오류 처리를 위해 "처리되지 않은 사용자 정의 예외"를 의미하는 SQLSTATE 값 "45000"을 할당해야 합니다.
MySQL 트리거와 함께 SIGNAL 문을 사용하는 방법을 설명하기 위해 Student_age 테이블에 BEFORE INSERT 트리거를 생성하는 다음 예를 사용합니다. 0보다 작은 나이를 입력하려고 하면 SIGNAL 문을 사용하여 오류 메시지가 표시됩니다.
mysql> Create trigger before_insert_studentage BEFORE INSERT on student_age FOR EACH ROW BEGIN IF NEW.age<0 then SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'age less than 0'; END if; END; // Query OK, 0 rows affected (0.12 sec) mysql> Insert into student_age(age, name) values(-10,'gaurav')// ERROR 1644 (45000): age less than 0
위 결과 집합에서 0보다 작은 나이를 삽입하려고 하면 SIGNAL 문을 사용하면 오류가 발생한다는 것이 분명합니다.
위 내용은 MySQL 트리거와 함께 SIGNAL 문을 어떻게 사용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!