개념: 트리거는 데이터 무결성을 보장하기 위해 SQL 서버에서 제공하는 방법입니다. 이는 테이블 이벤트와 관련된 특수 저장 프로시저이며 프로그램에 의해 실행이 호출되지 않습니다. 예를 들어 테이블이 조작(삽입, 삭제, 업데이트)되면 해당 테이블의 실행이 활성화됩니다. 트리거는 데이터 무결성 제약 조건과 비즈니스 규칙을 적용하는 데 자주 사용됩니다. 데이터 딕셔너리인 DBA_TRIGGERS, USER_TRIGGERS를 쿼리하여 트리거 관련 정보를 얻을 수 있습니다. SQL3 트리거는 데이터베이스를 수정하기 위해 시스템에서 자동으로 실행할 수 있는 명령문입니다.
일반인의 용어로 말하면 트리거는 트리거 장치이며 장치에 저장된 작업이 있습니다. 특정 조건에 도달하면 장치가 트리거되고 내부에 저장된 작업을 수행합니다.
트리거 인스턴스 생성(키워드: 트리거)
예제 1: 사용자 테이블(사용자 ID, 사용자 이름)을 생성하고 트리거 생성(사용자 테이블에 데이터가 삽입될 때) , 전역 고유 ID 자동 생성)
먼저 사용자 테이블을 생성합니다
create table user( id int PRIMARY KEY, name varchar(20) );
트리거 생성
-- 建立触发器名为tt create TRIGGER tt -- 触发条件,向user表中插入数据时启动触发器 BEFORE insert on user -- 检查表中每一行,对新插入的数据进行操作 for EACH ROW -- 执行操作 BEGIN set new.id=UUID(); END
방금 생성된 트리거(현재 데이터베이스에서 모든 트리거의 코드 표시 트리거 보기)
효과: 테이블에 사용자 이름 3개를 삽입하고 ID 3개를 자동으로 생성
insert user(name) VALUE('张三'),('李四'),('王五')
예 2: 주문 테이블 DD(주문 ID, 제품 이름, 사용자 ID)를 생성하고 트리거 tq1을 생성합니다(삭제 시 사용자가 추가되면 사용자의 주문도 삭제됩니다) 테이블 만들기
create table DD( ddid int PRIMARY KEY, ddname VARCHAR(20), userid VARCHAR(50) )
트리거 만들기
delimiter $ -- 建立触发器名为tq create TRIGGER tq1 -- 触发条件,再dd表删除数据之后启动触发器 AFTER DELETE on user -- 检查表中每一行,对新插入的数据进行操作 for EACH ROW -- 执行操作 BEGIN DELETE FROM dd WHERE old.id=userid; END $ delimiter ;
테이블에 두 개의 데이터 추가
효과: 사용자에서 사용자 삭제 dd 테이블의 레코드도 삭제됩니다. Zhang San
delete from user WHERE name='张三'
위의 예 2도 외래 키를 사용하여 동일한 효과를 얻을 수 있습니다. , 그렇죠? 트리거는 외래 키가 할 수 없는 모든 작업을 수행할 수 있다는 의미입니다.
트리거는 외래 키에 비해 더 높은 유연성과 더 많은 기능을 가지며 어느 정도 더 많은 기능을 수행할 수 있습니다. 트리거는 외래 키를 대체하고 외래 키의 기능을 실현할 수 있습니다.
트리거를 사용하면 참조 무결성을 강화하여 여러 테이블에서 행을 추가, 업데이트 또는 삭제할 때 이러한 테이블 간에 정의된 관계가 유지되도록 할 수 있습니다. 기본 키 및 외래 키 제약 조건을 정의하는 것은 참조 무결성을 보장하는 가장 좋은 방법입니다. 데이터베이스의 관계 다이어그램을 사용하면 테이블 간의 관계를 설정하여 외래 키 제약 조건을 자동으로 생성할 수 있습니다.
요약: 트리거는 때때로 외래 키를 대체할 수 있지만 모든 상황에서 그런 것은 아닙니다. 외래 키와 트리거를 함께 사용할 수도 있습니다
위 내용은 MySQL 데이터베이스 트리거를 생성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!