>데이터 베이스 >MySQL 튜토리얼 >MySQL 삭제 트리거(삭제) 사용법에 대한 자세한 설명

MySQL 삭제 트리거(삭제) 사용법에 대한 자세한 설명

巴扎黑
巴扎黑원래의
2017-05-19 15:24:0123933검색

DELETE 트리거

트리거는 SQL 서버가 프로그래머와 데이터 분석가에게 데이터 무결성을 보장하기 위해 제공하는 메서드입니다. 이벤트는 프로그램에 의해 호출되거나 수동으로 시작되지 않고 이벤트에 의해 실행됩니다. 예를 들어 테이블이 실행될 때 활성화됩니다. 트리거는 데이터 무결성 제약 조건과 비즈니스 규칙을 적용하는 데 자주 사용됩니다. 트리거는 DBA_TRIGGERS 및 USER_TRIGGERS 데이터 사전에서 찾을 수 있습니다. SQL3 트리거는 데이터베이스를 수정하기 위해 시스템에서 자동으로 실행할 수 있는 명령문입니다.

권장되는 관련 mysql 비디오 자습서: "mysql 자습서"

트리거는 다른 테이블을 쿼리할 수 있으며 복잡한 SQL 문을 포함할 수 있습니다. 주로 복잡한 비즈니스 규칙이나 요구 사항을 준수하도록 하는 데 사용됩니다. 예를 들어 고객의 현재 계정 상태에 따라 새 주문을 삽입할 수 있는지 여부를 제어할 수 있습니다.

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

1. DELETE 트리거 코드 내에서 OLD라는 가상 테이블을 참조하여 삭제된 행에 액세스할 수 있습니다.

2 OLD의 모든 값은 읽기 전용이며 업데이트할 수 없습니다. 다음 예에서는 OLD를 사용하여 삭제할 행을 아카이브 테이블에 저장하는 방법을 보여줍니다.

입력:

create trigger deleteorder before delete on orders for each row
begin
insert into archive_orders(order_num,order_date,cust_id)
values(old.order_num,old.order_date,old.cust_id);
end;

분석: 이 트리거는 주문이 삭제되기 전에 실행됩니다. INSERT 문을 사용하여 OLD(삭제할 주문)의 값을 archive_orders라는 아카이브 테이블에 저장합니다(실제로 이 예제를 사용하려면 주문과 동일한 열을 가진 archive_orders라는 테이블을 생성해야 합니다).

BEFORE DELETE 트리거(AFTER DELETE 트리거와 반대)를 사용하면 어떤 이유로든 주문을 보관할 수 없는 경우 DELETE 자체가 취소된다는 장점이 있습니다.

다중 문 트리거 보시다시피, 트리거 deleteorder는 BEGIN 및 END 문을 사용하여 트리거 본문을 표시합니다. 이 예에서는 이것이 필요하지 않지만 해가 되지는 않습니다. BEGIN END 블록을 사용하면 트리거가 여러 SQL 문(BEGIN END 블록에서 하나 옆에 하나씩)을 수용할 수 있다는 이점이 있습니다.

[관련 추천]

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

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

3. mysql 트리거 소개 및 트리거 생성 및 삭제

4. MySQL 문자 집합 및 정렬 순서 튜토리얼

5. MySQL 문자 집합 및 정렬 순서 소개

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

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