>  기사  >  데이터 베이스  >  MySQL 트리거와 함께 SIGNAL 문을 어떻게 사용할 수 있습니까?

MySQL 트리거와 함께 SIGNAL 문을 어떻게 사용할 수 있습니까?

PHPz
PHPz앞으로
2023-09-12 18:53:071110검색

我们如何将 SIGNAL 语句与 MySQL 触发器一起使用?

사실 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 문을 사용하여 오류 메시지가 표시됩니다.

Example

mysql> Create trigger before_insert_studentage BEFORE INSERT on
student_age FOR EACH ROW BEGIN IF NEW.age<0 then SIGNAL SQLSTATE
&#39;45000&#39; SET MESSAGE_TEXT = &#39;age less than 0&#39;; END if; END; //
Query OK, 0 rows affected (0.12 sec)

mysql> Insert into student_age(age, name) values(-10,&#39;gaurav&#39;)//
ERROR 1644 (45000): age less than 0

위 결과 집합에서 0보다 작은 나이를 삽입하려고 하면 SIGNAL 문을 사용하면 오류가 발생한다는 것이 분명합니다.

위 내용은 MySQL 트리거와 함께 SIGNAL 문을 어떻게 사용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제