언제 트리거를 사용합니까? 무슨 소용이 있습니까? 간단한 예를 들어 설명하다.

트리거는 특별한 저장 프로시저입니다. 프로그램 호출이나 수동 시작이 아니라 이벤트에 의해 실행됩니다. 예를 들어 테이블이 작업 (삽입, 삭제, 업데이트) 되면 해당 실행이 활성화됩니다. 트리거는 일반적으로 데이터 무결성 제약 조건 및 업무 규칙을 구현하는 데 사용됩니다. 트리거는 DBA_TRIGGERS 및 USER_TRIGGERS 데이터 딕셔너리에서 찾을 수 있습니다. 데이터베이스 영역 명사 트리거는 다른 테이블을 쿼리하고 복잡한 SQL 문을 포함할 수 있습니다. 복잡한 비즈니스 규칙이나 요구 사항을 적용하는 데 주로 사용됩니다. 예를 들어 고객의 현재 계정 상태에 따라 신규 주문 삽입 허용 여부를 통제할 수 있습니다.

트리거를 사용하여 여러 테이블에서 행을 추가, 업데이트 또는 삭제할 때 테이블 간에 정의된 관계가 유지되도록 참조 무결성을 구현할 수도 있습니다. 그러나 참조 무결성을 구현하는 가장 좋은 방법은 관련 테이블에서 기본 키와 외래 키 제약 조건을 정의하는 것입니다. 데이터베이스 차트를 사용하는 경우 테이블 간에 관계를 생성하여 외래 키 제약 조건을 자동으로 생성할 수 있습니다.

트리거 생성을 위한 SQL 구문

구분 기호 |

트리거 생성 "< databasename & gt `. ` & lttriggername & gt `

& lt[ 앞 | 뒤] > & lt[ 삽입 | 업데이트 | 삭제] >

ON & lttableName & gt

각 행에 대해 다음을 수행합니다

시작

-뭐 좀 해봐

종료 |

트리거의 이점

트리거는 데이터베이스의 관련 테이블을 통해 계단식 변경을 수행할 수 있습니다. 그러나 발생 무결성 구속조건을 계단식으로 배열하면 이러한 변경 사항을 보다 효율적으로 구현할 수 있습니다. 트리거는 CHECK 제약 조건으로 정의된 제약 조건보다 더 복잡한 제약 조건을 구현할 수 있습니다. CHECK 제약 조건과 달리 트리거는 다른 테이블의 열을 참조할 수 있습니다. 예를 들어 트리거는 다른 테이블의 SELECT 를 사용하여 삽입 또는 갱신된 데이터를 비교하고 데이터 수정 또는 사용자 정의 오류 메시지 표시와 같은 다른 작업을 수행할 수 있습니다. 트리거는 또한 데이터 수정 전후의 테이블 상태를 평가하고 그 차이에 따라 조치를 취할 수 있습니다. 테이블에서 같은 유형의 여러 트리거 (INSERT, UPDATE 또는 DELETE) 를 사용하면 동일한 수정문에 대한 여러 가지 다른 대책을 취할 수 있습니다.

트리거 및 제약 조건 비교

제약 조건과 트리거는 특수한 상황에서 각각 장점이 있다. 트리거의 주요 장점은 Transact-SQL 코드를 사용하는 복잡한 처리 논리를 포함할 수 있다는 것입니다. 따라서 트리거는 제약 조건의 모든 기능을 지원할 수 있습니다. 그러나 주어진 함수 중에서 항상 가장 좋은 방법은 아니다. 엔티티 무결성은 항상 기본 키와 고유 제약 조건의 일부이거나 제약 조건과 독립적으로 생성된 인덱스를 통해 가장 낮은 수준에서 적용되어야 합니다. 함수가 응용 프로그램의 기능 요구 사항을 충족한다고 가정하면 도메인 무결성은 제약 조건을 검사하여 구현되어야 하고 참조 무결성 (RI) 은 외래 키 제약 조건을 통해 구현되어야 합니다. 트리거는 구속조건이 지원하는 함수가 응용프로그램의 기능 요구사항을 충족하지 못하는 경우에 유용합니다.

예를 들어, REFERENCES 절에서 계단식 참조 작업을 정의하지 않는 한 FOREIGN KEY 제약 조건은 다른 열의 값과 정확히 일치하는 값만 사용하여 열 값을 검증할 수 있습니다.

CHECK 제약 조건은 논리 표현식 또는 동일한 테이블의 다른 열에 대해서만 열 값을 검증할 수 있습니다. 응용 프로그램에서 다른 테이블의 열에 대해 열 값을 검증하도록 요구하는 경우 트리거를 사용해야 합니다.

제약 조건은 표준 시스템 오류 메시지를 통해서만 오류 메시지를 전달할 수 있습니다. 응용 프로그램에 사용자 정의 정보 및 보다 복잡한 오류 처리가 필요한 경우 (또는 이점을 누릴 수 있는 경우) 트리거를 사용해야 합니다.

트리거는 데이터베이스의 관련 테이블을 통해 계단식 변경을 수행할 수 있습니다. 그러나 발생 무결성 구속조건을 계단식으로 배열하면 이러한 변경 사항을 보다 효율적으로 구현할 수 있습니다.

트리거는 참조 무결성을 위반하는 변경을 금지하거나 롤백하여 시도된 데이터 수정을 취소할 수 있습니다. 이러한 유형의 트리거는 외래 키가 변경되고 새 값이 기본 키와 일치하지 않을 때 작동할 수 있습니다. 예를 들어, titleauthor.title_id 에 삽입 트리거를 생성하여 새 값이 titles.title_id 의 값과 일치하지 않을 때 삽입을 롤백할 수 있습니다. 그러나 일반적으로 외래 키를 사용하여 이 작업을 수행합니다.

트리거 테이블에 제약 조건이 있는 경우 INSTEAD OF 트리거가 실행된 후 트리거가 실행된 후 확인합니다. 제약 조건이 손상되면 INSTEAD OF 트리거 작업이 롤백되고 AFTER 트리거가 실행되지 않습니다.

SQL Server 의 뷰에 트리거를 생성할 수 있습니까? 6? 4 온라인 총서에서는 뷰에 트리거를 만들 수 없다고 말하지 않았습니다. 구문 해석에서는 다음과 같이 설명합니다.

CREATE 트리거가 열리면 뷰가 될 수 있습니다. 그러나 사실은 그렇지 않은 것 같으며, 많은 전문가들은 뷰에 트리거를 만들 수 없다고 생각합니다. 나는 또한 특별히 테스트를 했는데, 사실이다. 일반 뷰나 인덱스 뷰 중 어느 것도 트리거를 생성할 수 없습니다. 이게 사실인가? 자세한 내용은 클릭하세요. 하지만 중간 테이블이나 시스템 테이블에 트리거를 만들 때 거부당하는 것도 이해할 수 있어요. FOR CREATE TRIGGER 문의 FOR 키워드를 심층적으로 이해한 후 INSERT, UPDATE 및 DELETE 중 하나 이상을 따를 수 있습니다. 즉, SELECT, TRUNCATE, WRITETEXT 및 UPDATETEXT 를 포함한 다른 경우에는 트리거가 트리거되지 않습니다 흥미로운 응용 프로그램: 등록 후 사용자 이름을 변경할 수 없는 등록 시스템이 많이 있지만 대부분 응용 프로그램에 의해 결정됩니다. 변경을 위해 데이터베이스 테이블을 직접 열면 사용자 이름을 변경할 수 있으며 트리거의 rollback 을 사용하여 사용자 이름을 변경할 수 없다는 것을 능숙하게 알 수 있습니다. 상세 콘텐츠 트리거의 내부 문에 오류가 발생하면 ... 이 경우 이전 데이터 변경 작업은 유효하지 않습니다. 예를 들어, 데이터가 테이블에 삽입될 때 트리거가 트리거되고 트리거 내부에 런타임 오류가 발생하면 오류 값이 반환되고 방금 데이터 삽입이 거부됩니다. 트리거에 사용할 수 없는 명령문 대부분의 T-SQL 문은 트리거에서 사용할 수 있지만 다음 문은 트리거에서 사용할 수 없습니다.

데이터베이스 생성, 테이블 생성, 인덱스 생성 등과 같은 명령문을 생성합니다.

ALTER database, ALTER TABLE, ALTER INDEX 등과 같은 alter 문.

DROP 문 (예: DROP DATABASE, DROP TABLE, DROP INDEX 등).

디스크 문 (예: DISK INIT 및 DISK RESIZE).

LOAD 문 (예: LOAD DATABASE, LOAD LOG).

RESTORE 문 (예: RESTORE DATABASE, RESTORE LOG).

리모델링

Sybase 트리거에서는 TRUNCATE TABLE 문을 사용할 수 없습니다!

트리거를 주의해서 사용하세요. 트리거가 강력하여 많은 복잡한 기능을 쉽고 안정적으로 구현할 수 있습니다. 왜 그것들을 신중하게 사용해야 합니까? 트리거 자체에는 문제가 없지만 남용으로 인해 데이터베이스 및 애플리케이션의 유지 관리가 어려워질 수 있습니다. 데이터베이스 작업에서 관계, 트리거, 저장 프로시저, 애플리케이션 등을 통해 데이터 작업을 수행할 수 있으며 규칙, 제약 조건 및 기본값도 데이터 무결성을 보장하는 중요한 보증입니다. 트리거에 지나치게 의존하면 데이터베이스의 구조에 영향을 미치면서 복잡한 유지 관리 절차를 추가할 수 있습니다. [편집 본 단락] 디지털 회로 분야의 전문 이름은' 쌍안정 멀티바이브레이터' 이다. 트리거는 회로 상태를 저장할 수 있는 전자 구성요소입니다. 가장 간단한 것은 두 개의 NOR 문, 두 개의 입력 및 두 개의 출력으로 구성된 RS 트리거입니다 (그림 참조). 더 복잡한 것은 D 트리거입니다. 클럭 (CLK) 세그먼트와 D (데이터) 끝이 있고, CLK 끝이 높을 때 D 측 상태를 따르고, CLK 끝이 낮아지는 순간 잠금 신호가 있습니다. 비교적 일반적으로 사용되는 것은 두 개의 간단한 D 트리거의 캐스케이드로, 시계 아래쪽에 신호를 잠그는 edge D 트리거로 카운터, 연산자, 메모리 등의 전자 부품에 널리 사용됩니다.

트리거 회로 구조 및 논리 기능;

논리 함수는 정상 상태일 때 트리거의 2 차 상태와 현재 상태와 입력 신호 간의 논리적 관계입니다. 이러한 논리적 관계는 피쳐 테이블, 피쳐 방정식 또는 상태 전환 다이어그램으로 제공할 수 있습니다.

논리적 기능의 특징에 따라 트리거는 RS, JK, T, D 등으로 나뉩니다.

회로 구조는 회로의 도어 회로 유형 및 조합입니다.

기본 RS 트리거, 동기화 RS 트리거, 마스터-슬레이브 트리거 및 에지 트리거는 다양한 형태의 회로 구조를 나타냅니다. 회로 구조가 다르기 때문에, 서로 다른 동작 특성을 가져왔다.

동일한 논리적 기능을 가진 트리거는 서로 다른 회로 구조를 통해 구현될 수 있습니다. 반대로 논리적 기능이 다른 트리거는 동일한 회로 구조로 만들 수 있습니다.

트리거 유형:

논리 기능에 따라 RS 트리거, D 트리거, JK 트리거 및 T 트리거로 나눌 수 있습니다.

트리거 방식에 따라 수평 트리거, 가장자리 트리거 및 마스터-슬레이브 트리거로 나눌 수 있습니다.

회로 구조에 따라 기본 RS 트리거와 클럭 트리거로 나눌 수 있습니다.

데이터 저장 원리에 따라 정적 트리거와 동적 트리거로 나눌 수 있습니다.

트리거의 기본 구성에 따라 바이폴라 트리거와 MOS 트리거로 나뉩니다.

조명 설비

고강도 가스 방전 램프에는 여러 가지 유형이 있습니다. 고강도 가스 방전 램프는 가스를 플라즈마로 이온화하기 위해 고전압이 필요하기 때문에 고전압 발생기가 이니시에이터로 필요합니다. 이것은 도화선이다. 초기 기계 트리거가 제거되었습니다. 현재 대부분의 트리거는 사이리스터 또는 고압 트리거 다이오드를 사용하는 전자 트리거입니다. 일반적으로 사용되는 모델은 오스랑의 CD-7, 필립스의 Si565438 애륜 0SN58, ALK400 등입니다.