찾다
php教程PHP开发SQL 트리거(삽입, 업데이트, 삭제)

SQL 트리거(삽입, 업데이트, 삭제)

Dec 14, 2016 pm 04:19 PM
SQL 트리거

--삽입 트리거
트리거 생성 tri_insert
학생 — 변경할 테이블의 이름
삽입 — 데이터 조각을

테이블에 삽입할 때 트리거됨 @student_id char(10) --변수 정의
SELECT @student_id=s.student_id from --쿼리된 지정된 필드의 값을 변수에 할당합니다.
student s 내부 조인이 i
에 삽입되었습니다. .student_id=i.student_id
if @student_id='0000000001'
begin
Raiserror('학생번호 1을 삽입할 수 없습니다!',16,8)
트랜 롤백
end
go

--업데이트 트리거
트리거 생성 tri_update
학생--변경할 테이블의 이름
업데이트--데이터 조각이 table
as
if update(student_id)
begin
Raiserror('학생 ID를 수정할 수 없습니다!',16,8)
롤백 tran
end
go


--삭제 트리거
트리거 생성 tri_delete
학생 --변경할 테이블 이름
삭제용 --테이블에서 데이터를 삭제할 때 트리거
as
@student_id varchar(10) 선언
삭제된 항목에서 @student_id=student_id 선택
if @student_id='admin'
begin
Raiserror('error',16,8)
롤백 전환
end

설명: 데이터를 삭제할 때 데이터베이스가 삭제된 데이터를 삭제된 임시 테이블에 넣을 것이라고 가정할 수 있습니다. 삭제된 필드를 삽입할 때 삽입된 테이블에 삽입할 데이터를 넣는다는 점만 제외하고 원칙은 동일합니다.
업데이트 작업은 두 가지 작업을 수행하는 것으로 볼 수 있습니다. 먼저 행 레코드를 삭제한 다음 삽입하는 방식으로 업데이트 작업은 실제로 삭제된 테이블과 삽입된 테이블에 대해 수행되므로 업데이트된 테이블이 발생하지 않습니다. 두 테이블에 기본키와 외래키 관계가 있을 때, 메인 테이블의 데이터를 삭제하고 싶다면, 서브 테이블과 관련된 데이터도 함께 삭제하게 되는데, 이때 트리거를 사용하면, 테이블을 삭제한 후에 트리거가 트리거되므로 아무런 효과가 없습니다. 예, 이 시점에서 "기본 및 외래 키 관계가 있으므로 삭제할 수 없습니다."라는 메시지가 표시되면서 바로 종료됩니다. 효과가 없습니다


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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.