> 데이터 베이스 > MySQL 튜토리얼 > 트리거를 사용하여 MySQL에서 향후 생년월일 삽입을 방지하는 방법은 무엇입니까?

트리거를 사용하여 MySQL에서 향후 생년월일 삽입을 방지하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2025-01-16 18:34:15
원래의
590명이 탐색했습니다.

How to Prevent Future Birthdate Inserts in MySQL Using a Trigger?

MySQL 트리거를 사용하여 미래 생일 삽입 방지

질문:

향후 행에 생일 열 삽입을 비활성화하는 MySQL 트리거를 만듭니다.

정답:

생일 열이 현재 날짜를 초과할 때 삽입을 방지하려면:

<code class="language-sql">CREATE TRIGGER check_birthdate
BEFORE INSERT ON table
FOR EACH ROW
BEGIN
  IF NEW.birthdate > CURRENT_DATE() THEN
    SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Birthdate cannot be in the future';
  END IF;
END;</code>
로그인 후 복사

지침:

  • CREATE TRIGGER 문은 check_birthdate이라는 새 트리거 생성을 시작합니다.
  • BEFORE INSERT 절은 삽입 작업 전에 트리거가 실행되어야 함을 지정합니다.
  • ON table 절은 트리거가 적용될 테이블을 지정합니다.
  • FOR EACH ROW은 각 행에 대해 트리거가 실행되어야 함을 나타냅니다.
  • IF 문은 NEW.birthdate 필드의 값(삽입된 행의 열 값)이 CURRENT_DATE()보다 큰지 확인합니다. 그렇다면 트리거는 다음 단계로 진행됩니다.
  • SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Birthdate cannot be in the future' 문은 SQL 상태가 '45000'(제약조건 위반을 나타내는 사용자 정의 예외 조건)인 SQL 예외를 발생시킵니다. 이렇게 하면 현재 삽입 작업이 취소되고 더 명확한 오류 메시지가 제공됩니다. 향상된 문에는 SET MESSAGE_TEXT이 포함되어 있어 오류 메시지를 더 쉽게 이해하고 디버그할 수 있습니다.

이 수정된 답변은 더욱 유용한 오류 메시지를 제공하여 사용성을 향상시킵니다.

위 내용은 트리거를 사용하여 MySQL에서 향후 생년월일 삽입을 방지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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