기금넷 공식사이트 - 금 선물 - 트리거는 데이터베이스 설계 및 프로그래밍에서 어떤 중요한 역할을 합니까?
트리거는 데이터베이스 설계 및 프로그래밍에서 어떤 중요한 역할을 합니까?
간단히 말해서, 이벤트 트리거가 어디에 있습니까?
예를 들어, 데이터베이스에서 테이블을 삽입하거나 삭제하는 경우 작업을 실행하거나 완료할 때 프로그램이 자동으로 다른 작업을 수행하도록 할 수 있습니다. 예를 들어, 삽입된 데이터를 검사하거나 삭제된 데이터의 총 수를 계산하려고 합니다.
처음에는 자체 프로그램에서 이 작업을 작성할 수 있습니다. 즉, 삽입 작업 전에 검사를 작성하거나 삭제 작업 후에 통계를 작성할 수 있습니다. 문제는 이러한 코드를 삽입 하거나 삭제 하려는 경우, 그것은 쉽게 누락 작성 해야 합니다.
트리거의 경우, 해당 검사의 워크플로우를 삽입된 선행 트리거로 정의하고 통계 작업을 사후 트리거로 정의하는 것과 같은 작업에서 정의합니다. 그러면 삽입 및 삭제 시 데이터베이스측 프로그램이 자동으로 이러한 작업을 수행할 수 있습니다. (데이비드 아셀, Northern Exposure (미국 TV 드라마), Northern Exposure (미국 TV 드라마), 성공명언
주요 기능은 무엇인가: 나는 느낀다.
하나는 무결성 (프로그래밍 누락을 방지) 입니다.
둘째, 간단합니다.
셋째, 데이터베이스 프로그램 (예: Oracle) 은 자체 프로그램이 아닌 이 작업을 수행합니다.
다음은 몇 가지 자습서이지만 이치는 매우 간단하다. 뒤에 언급된 몇 가지 데이터베이스의 예를 사용하여 직접 시도해 볼 수 있습니다.
-----------------
트리거를 도입합니다
트리거는 특정 테이블을 삽입, 삭제 또는 수정하는 특수 저장 프로시저입니다.
데이터베이스 자체의 표준 기능보다 더 정교하고 복잡합니다.
데이터 제어 기능. 데이터베이스 트리거에는 다음과 같은 기능이 있습니다.
* 보안. 데이터베이스의 가치에 따라 사용자에게 데이터베이스를 조작할 수 있는 권한을 부여할 수 있습니다.
리.
# 휴무일 및 공휴일 허용과 같은 시간을 기준으로 사용자의 작업을 제한할 수 있습니다.
데이터베이스 데이터를 수정합니다.
# 데이터베이스의 데이터를 기준으로 사용자의 작업을 제한할 수 있습니다 (예: 주식 허용 안 함).
우리 제품의 가격이 한 번에 10% 이상 올랐다.
* 감사. 데이터베이스에 대한 사용자 작업을 추적할 수 있습니다.
# 데이터베이스를 운영하는 사용자의 명령문을 감사합니다.
# 데이터베이스에 대한 사용자 업데이트를 감사 테이블에 기록합니다.
* 복잡한 데이터 무결성 규칙을 구현합니다.
# 비표준 데이터 무결성 검사 및 제약 조건 구현 트리거는 비율 규칙을 생성할 수 있습니다.
더 복잡한 제한. 규칙과 달리 트리거는 열 또는 데이터베이스 쌍을 참조할 수 있습니다.
코끼리. 예를 들어, 트리거는 자신의 보증금을 초과하는 모든 선물을 회수할 수 있다.
# 가변 기본값을 제공합니다.
* 복잡한 비표준 데이터베이스 관련 무결성 규칙을 구현합니다. 트리거는 대수일 수 있습니다
라이브러리의 관련 테이블에 따라 직렬 업데이트를 수행합니다. 예를 들어 Authors 테이블의 author_code 열에서 다음을 수행합니다
트리거를 삭제하면 다른 테이블에서 일치하는 행이 적절하게 삭제됩니다.
# 수정 또는 삭제 시 계단식 수정 또는 다른 테이블에서 일치하는 행 삭제.
# 수정 또는 삭제 시 다른 테이블의 일치하는 행을 null 값으로 설정합니다.
# 수정 또는 삭제 시 다른 테이블의 일치하는 행 계단식 작성을 기본값으로 설정합니다.
# 트리거는 종속성 무결성을 훼손하는 변경 사항을 거부하거나 취소하고 테스트를 취소할 수 있습니다.
데이터 갱신 트랜잭션 레코드의 숫자입니다. 기본 키와 일치하지 않는 외래 키를 삽입할 때
트리거가 에 있습니다. 예를 들어 books.author_code 에서 찾을 수 있습니다
열 (새 값이 auths.author_code 열과 같은 경우).
값이 일치하지 않으면 삽입 작업이 롤백됩니다.
* 테이블의 데이터를 실시간으로 동기화 및 복제합니다.
* 데이터 값을 자동으로 계산하며, 데이터 값이 특정 요구 사항에 도달할 경우 특별합니다
고정가공. 예를 들어 회사 계좌의 자금이 5 만원 미만이면 바로 재무인에게 드립니다.
구성원이 경고 데이터를 보냅니다.
ORACLE 과 SYBASE 데이터베이스에 대한 트리거 간에는 몇 가지 차이점이 있습니다. 아래에 설명되어 있습니다.
이 두 데이터베이스 트리거의 역할과 작성.
두 개의 ORACLE 트리거
ORACLE 에서 데이터베이스 트리거를 생성하는 구문은 다음과 같습니다.
[또는 대체] 트리거 트리거 이름 트리거 시간 트리거 이벤트를 생성합니다.
테이블 이름 정보
[행당]
Pl/sql 문
여기에는 다음이 포함됩니다.
트리거 이름: 트리거 객체의 이름입니다. 트리거가 데이터베이스에 의해 자동으로 실행되기 때문입니다
그래서 이름은 단지 이름일 뿐 실질적인 용도는 없다.
트리거 시간: 트리거가 실행되는 시기를 나타냅니다. 이 값은 허용됩니다.
Before-데이터베이스 작업 전에 트리거가 실행됨을 나타냅니다.
After-데이터베이스 작업 후 시작프로그램이 실행됨을 나타냅니다.
이벤트 트리거: 이 트리거를 트리거할 데이터베이스 작업을 나타냅니다.
삽입: 데이터베이스 삽입은 트리거를 트리거합니다.
업데이트: 데이터베이스 수정으로 트리거가 트리거됩니다.
삭제: 데이터베이스 삭제는 이 트리거를 트리거합니다.
테이블명: 데이터베이스 트리거가 있는 테이블입니다.
행당: 테이블의 행당 한 번 트리거합니다. 이거 없어요
전체 테이블을 한 번만 실행하는 옵션입니다.
예: auths 테이블이 갱신되기 전에 다음 트리거가 트리거되어 허용되지 않습니다.
주말 수정 표:
트리거 인증 _ 보안 생성
Insert 또는 update 또는 delete 이전에//전체 테이블이 업데이트되기 전에 트리거됩니다.
권한 부여 정보
시작
If(to_char(sysdate,' DY')='SUN'
RAISE_APPLICATION_ERROR(-20600,' 주말에는 테이블 auths 를 수정할 수 없습니다
끝 if;
끝
삼항 데이터베이스 트리거
SYBASE 데이터베이스 트리거의 기능은 ORACLE 과 매우 유사하며 약간의 차이만 있습니다.
사이베이스가 트리거를 생성하는 구문은 다음과 같습니다.
트리거 트리거명 생성
테이블 이름 정보
삽입, 업데이트, 삭제에 사용됩니다
마찬가지로
SQL _ 문 |
삽입의 경우 업데이트
마찬가지로
If update (column _ name) [and | or update (column _ name)] ...
SQL _ 문
위의 FOR 절은 트리거에서 활성화할 수 있는 데이터 업데이트 명령을 지정하는 데 사용됩니다.
방아쇠. IF UPDATE 절은 지정된 열의 작업 유형을 검사하고 IF UPDATE 절에 있습니다
에서 여러 열을 지정할 수 있습니다.
ORACLE 과 달리 트리거는 각 SQL 문에 대해 한 번만 실행됩니다. 발생
데이터 업데이트 문이 완료되면 바로 실행됩니다. 트리거와 이를 시작하는 문은 하나의 전체로 간주됩니다
트랜잭션, 트리거 내에서 트랜잭션을 롤백할 수 있습니다.
다음 예에서는 SYBASE 트리거 작성을 보여 줍니다.
Insert_books 에 대한 트리거 생성
책에서
삽입에 사용
마찬가지로
If(select count(*) from auths, inserted
여기서 auths.author _ code = insert.author _ code! =@@rowcount
시작
트랜잭션을 롤백합니다
"books 테이블의 author_code 열 값이 authors 테이블에 없습니다."
끝