집 >데이터 베이스 >MySQL 튜토리얼 >향후 생년월일 삽입을 방지하기 위해 MySQL 트리거를 사용하는 방법은 무엇입니까?
MySQL 트리거를 사용하여 미래의 생년월일이 삽입되지 않도록 방지
MySQL에서는 트리거를 사용하여 특정 조건에 따른 삽입 작업을 방지할 수 있습니다. 그러한 경우 중 하나는 미래에 생년월일이 삽입되는 것을 방지하는 것입니다.
이를 위해 BEFORE INSERT
열의 값을 확인하는 birthdate
트리거를 생성할 수 있습니다.
<code class="language-sql">CREATE TRIGGER foo BEFORE INSERT ON table FOR EACH ROW BEGIN IF NEW.birthdate > CURRENT_DATE() THEN -- 如何阻止插入? END IF; END;</code>
IF
문 내에서 삽입 작업을 취소하려면 MySQL의 SIGNAL
문을 사용할 수 있습니다.
<code class="language-sql">CREATE TRIGGER foo BEFORE INSERT ON table FOR EACH ROW BEGIN IF NEW.birthdate > CURRENT_DATE() THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = '由于出生日期为未来日期,因此不允许插入'; END IF; END;</code>
또는 제약 조건을 위반하도록 데이터를 수정할 수 있습니다. 예를 들어 생년월일이 미래인 경우 birthdate
열의 값을 NULL
:
<code class="language-sql">CREATE TRIGGER foo BEFORE INSERT ON table FOR EACH ROW BEGIN IF NEW.birthdate > CURRENT_DATE() THEN SET NEW.birthdate = NULL; END IF; END;</code>
birthdate
컬럼은 NOT NULL
으로 정의되어 있으므로 삽입 작업이 자동으로 거부됩니다.
위 내용은 향후 생년월일 삽입을 방지하기 위해 MySQL 트리거를 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!