>  기사  >  데이터 베이스  >  MySQL의 삽입 트리거(insert)에 대한 자세한 설명

MySQL의 삽입 트리거(insert)에 대한 자세한 설명

巴扎黑
巴扎黑원래의
2017-05-19 15:25:426679검색

INSERT 트리거

이제까지의 기본 지식을 염두에 두고 지원되는 각 트리거 유형과 차이점을 살펴보겠습니다.

INSERT 트리거는 INSERT 문이 실행되기 전이나 후에 실행됩니다. 다음 사항을 알아야 합니다:

1. INSERT 트리거 코드에서 NEW라는 가상 테이블을 참조하여 삽입된 행에 액세스할 수 있습니다.

2 . BEFORE INSERT 트리거에서는 NEW의 값을 업데이트할 수도 있습니다(삽입된 값을 변경할 수 있음).

3 AUTO_INCREMENT 열의 경우 NEW는 INSERT가 실행되기 전에 0을 포함하고 INSERT가 실행된 후에는 0을 포함합니다. 새로운 자동 생성 값이 실행됩니다.

여기에 예가 있습니다(실용적이고 유용한 예). AUTO_INCREMENT 열에는 MySQL이 자동으로 할당한 값이 있습니다. 새로 생성된 값을 결정하는 방법이 있지만 더 좋은 방법은 다음과 같습니다.

입력:

create trigger neworder after insert on orders for each row select new .order_num;

분석: 이 코드는 AFTER INSERT ON 주문 실행을 따르는 neworder라는 트리거를 생성합니다. 주문 테이블에 새 주문을 삽입하면 MySQL은 새 주문 번호를 생성하고 이를 order_num에 저장합니다. 트리거는 NEW.order_num에서 이 값을 가져와서 반환합니다. BEFORE INSERT 문이 실행되기 전에 새 order_num이 생성되지 않았기 때문에 이 트리거는 AFTER INSERT를 실행해야 합니다. 이 트리거를 사용하면 주문에 삽입될 때마다 항상 새 주문 번호가 반환됩니다.

이 트리거를 테스트하려면 다음과 같이 새 줄을 삽입해 보세요.

입력:

insert into orders(order_date,cust_id) values(now(),10001);

출력:

MySQL의 삽입 트리거(insert)에 대한 자세한 설명

분석: 주문에는 3개의 열이 포함됩니다. order_date 및 cust_id를 제공해야 하며 order_num은 MySQL에 의해 자동으로 생성되며 이제 order_num이 자동으로 반환됩니다.

이전 또는 이후? 일반적으로 BEFORE는 데이터 유효성 검사 및 정제에 사용됩니다(목적은 테이블에 삽입된 데이터가 실제로 필요한 데이터인지 확인하는 것입니다). 이 팁은 UPDATE 트리거에도 적용됩니다.

[관련 추천]

1. mysql 무료 동영상 튜토리얼

mysql 트리거 소개 및 트리거 생성 및 삭제 방법

3. MySQL 문자 집합 및 조합 순서 튜토리얼

4. MySQL 문자 집합 및 조합 순서 소개

🎜>5.

보존 지점 사용 및 기본 커밋 동작 변경에 대한 MySQL 트랜잭션 세부 설명

위 내용은 MySQL의 삽입 트리거(insert)에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.