>  기사  >  데이터 베이스  >  MYSQL 데이터베이스 트리거에 대해 이야기해 보겠습니다.

MYSQL 데이터베이스 트리거에 대해 이야기해 보겠습니다.

WBOY
WBOY앞으로
2022-04-12 18:23:031691검색

이 기사에서는 mysql에 대한 관련 지식을 제공합니다. 트리거란 무엇인지, 데이터베이스에서 트리거를 생성하는 방법, 트리거가 외래 키를 대체할 수 있는지 여부 등 트리거와 관련된 문제를 주로 소개합니다. 함께 살펴보겠습니다. 모든 사람에게 도움이 되기를 바랍니다.

MYSQL 데이터베이스 트리거에 대해 이야기해 보겠습니다.

추천 학습: mysql 동영상 튜토리얼

먼저 트리거를 이해한 다음 외래 키를 완전히 대체할 수 있는지 논의하세요

트리거란 무엇인가요?

Concept: 트리거는 데이터 무결성을 보장하기 위해 SQL 서버에서 제공하는 방법입니다. 테이블 이벤트와 관련된 특수 저장 프로시저로 프로그램 호출이 수동으로 시작되지 않습니다. 예를 들어 테이블이 조작(삽입, 삭제, 업데이트)되면 해당 테이블의 실행이 활성화됩니다. 트리거는 데이터 무결성 제약 조건과 비즈니스 규칙을 적용하는 데 자주 사용됩니다. 트리거는 DBA_TRIGGERS 및 USER_TRIGGERS 데이터 사전에서 찾을 수 있습니다. SQL3 트리거는 데이터베이스를 수정하기 위해 시스템에서 자동으로 실행할 수 있는 명령문입니다.

  • 일반 용어로 트리거는 트리거 장치이며 장치에 저장된 작업이 있습니다. 이 장치에는 특정 조건이 충족되면 장치가 트리거되고 트리거 장치는 저장된 작업을 실행합니다.

데이터베이스에서 트리거를 생성하는 방법

트리거 인스턴스 생성(키워드: 트리거)

예제 1: 사용자 테이블(사용자 ID, 사용자 이름)을 생성하고 트리거를 생성합니다. (사용자 테이블에 데이터가 삽입되면 글로벌 고유 ID가 자동으로 생성됩니다.)

사용자 테이블을 먼저 생성하세요

create table user(
id int PRIMARY KEY,
name varchar(20)
);

MYSQL 데이터베이스 트리거에 대해 이야기해 보겠습니다.
트리거 생성

-- 建立触发器名为tt
create TRIGGER tt
-- 触发条件,向user表中插入数据时启动触发器
BEFORE insert on user
-- 检查表中每一行,对新插入的数据进行操作
for EACH ROW
-- 执行操作
BEGIN 
set new.id=UUID();
END

방금 생성된 트리거(트리거는 아래에서 확인하세요) 현재 데이터베이스 모든 트리거 코드는 트리거를 표시합니다.)
MYSQL 데이터베이스 트리거에 대해 이야기해 보겠습니다.
Effect: 테이블에 세 개의 사용자 이름을 삽입하고 자동으로 세 개의 ID를 생성합니다.

insert user(name) VALUE('张三'),('李四'),('王五')

MYSQL 데이터베이스 트리거에 대해 이야기해 보겠습니다.
예 2: 다른 주문 테이블 생성 DD(주문 ID, 제품 이름 , 사용자 ID), 트리거 tq1을 생성합니다(사용자가 삭제되면 해당 사용자의 주문도 삭제됩니다)
테이블 만들기

create table DD(
ddid int PRIMARY KEY,
ddname VARCHAR(20),
userid VARCHAR(50)
)

MYSQL 데이터베이스 트리거에 대해 이야기해 보겠습니다.
트리거 생성

delimiter $
-- 建立触发器名为tq
create TRIGGER tq1
-- 触发条件,再dd表删除数据之后启动触发器
AFTER DELETE on user
-- 检查表中每一行,对新插入的数据进行操作
for EACH ROW
-- 执行操作
BEGIN  
DELETE FROM dd WHERE old.id=userid;
END $ 
delimiter ;

MYSQL 데이터베이스 트리거에 대해 이야기해 보겠습니다.
을 테이블에 추가 두 조각의 데이터
MYSQL 데이터베이스 트리거에 대해 이야기해 보겠습니다.

Effect: user 테이블의 사용자를 삭제하면 dd 테이블의 레코드도 삭제됩니다.
Delete Zhang San

delete from user WHERE name='张三'

MYSQL 데이터베이스 트리거에 대해 이야기해 보겠습니다.
MYSQL 데이터베이스 트리거에 대해 이야기해 보겠습니다.

트리거를 완전하게 할 수 있나요? 외부 키 교체

  • 위의 예 2에서 외래 키를 사용하여 동일한 효과를 얻을 수 있다면 이는 외래 키가 수행할 수 있는 모든 작업을 트리거가 수행할 수 있고 외래 키가 수행할 수 없는 작업을 수행할 수 없는 트리거도 수행할 수 있다는 의미입니까? 해?
  • 외래 키에 비해 트리거는 더 높은 유연성과 더 많은 기능을 갖고 있으며 어느 정도는 외래 키를 대체하고 외래 키의 기능을 실현할 수 있습니다.
  • 트리거를 사용하면 여러 테이블에서 행을 추가, 업데이트 또는 삭제할 때 해당 테이블 간에 정의된 관계가 유지되도록 참조 무결성을 강화할 수도 있습니다. 그러나 참조 무결성을 적용하는 가장 좋은 방법은 관련 테이블에 기본 키 및 외래 키 제약 조건을 정의하는 것입니다. 데이터베이스 다이어그램을 사용하는 경우 테이블 간의 관계를 생성하여 외래 키 제약 조건을 자동으로 생성할 수 있습니다.

요약: 트리거는 경우에 따라 외래 키를 대체할 수 있지만 모든 상황에서 그렇지는 않습니다. 외래 키와 트리거를 함께 사용할 수도 있습니다

추천 학습: mysql 비디오 튜토리얼

위 내용은 MYSQL 데이터베이스 트리거에 대해 이야기해 보겠습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제