[DM] 다몽 데이터베이스에서의 트리거 실례
8981 단어 데이터베이스
DROP TABLE IF EXISTS TEST;
CREATE TABLE TEST(
ID INT IDENTITY(1,1),
NAME VARCHAR(50),
CITY VARCHAR(50)
);
INSERT INTO TEST(NAME,CITY) VALUES(' ',' '),(' ',' '),(' ',' ');
인스턴스 1: 수정 작업에 대한 프롬프트
절차.
CREATE OR REPLACE TRIGGER TRG
AFTER UPDATE OF NAME ON TEST
BEGIN
PRINT ' ';
END;
결실
SQL> CREATE OR REPLACE TRIGGER TRG
2 AFTER UPDATE OF NAME ON TEST
3 BEGIN
4 PRINT ' ';
5 END;
6 /
: 5.871( ). :2006.
SQL> UPDATE TEST SET NAME=' ' WHERE ID='3';
1
: 0.851( ). :2007.
주의표의 정의와 트리거의 정의의 선후 순서입니다. 트리거를 만든 후에 목표표를 재구성하면 트리거는 효력이 발생하지 않습니다.
실례2: 모듈 레벨 트리거와 문장 레벨 트리거, 옛 값의 새 값 인쇄
절차.
CREATE OR REPLACE TRIGGER TRG
AFTER UPDATE OF NAME ON TEST
FOR EACH ROW --
BEGIN
PRINT ' , '||:OLD.NAME||', '||:NEW.NAME;
END;
-- :':OLD' ,':NEW' 。 , "FOR EACH STATEMENT" , 。
결실
SQL> CREATE OR REPLACE TRIGGER TRG
2 AFTER UPDATE OF NAME ON TEST
3 FOR EACH ROW
4 BEGIN
5 PRINT ' , '||:OLD.NAME||', '||:NEW.NAME;
6 END;
7 /
: 55.198( ). :2008.
SQL> UPDATE TEST SET NAME=' ' WHERE ID='3';
, ,
1
: 14.871( ). :2009.
인스턴스 3: INSTEAD OF 유형 트리거, 대체 동작
데이터 세트 만들기: V1 뷰
DROP TABLE IF EXISTS TEST;
CREATE TABLE TEST(
ID INT IDENTITY(1,1),
NAME VARCHAR(50),
CITY VARCHAR(50)
);
INSERT INTO TEST(NAME,CITY) VALUES(' ',' '),(' ',' '),(' ',' ');
CREATE VIEW V1 AS SELECT * FROM TEST;
트리거를 만들다
CREATE OR REPLACE TRIGGER TRI
INSTEAD OF UPDATE ON V1
BEGIN
INSERT INTO TEST(NAME,CITY) VALUES(' ',' ');
END;
효과
SQL> UPDATE V1 SET CITY =' ' WHERE ID=1;
1
: 33.769( ). :2019.
SQL> SELECT * FROM V1;
ID NAME CITY
---------- ----------- ---- ----
1 1
2 2
3 3
4 4
: 0.548( ). :2020.
INSTEAD OF 트리거는 뷰에만 유효하며 기본 테이블은 변경되지 않습니다.
실례4: 행급 트리거와 문장급 트리거 비교
위의 테스트 데이터를 연결하다
절차.
--
CREATE OR REPLACE TRIGGER TRI_1
AFTER UPDATE ON TEST
FOR EACH STATEMENT
BEGIN
PRINT ' ';
END;
--
CREATE OR REPLACE TRIGGER TRI_2
AFTER UPDATE ON TEST
FOR EACH ROW --
BEGIN
PRINT ' ';
END;
효과
SQL> UPDATE TEST SET CITY=' ' WHERE ID IN (1,2,3,4,5);
5
: 1.339( ). :2029.
AFTER/BEFORE 트리거는 뷰에서 생성할 수 없습니다.
INSTEAD 트리거는 행 레벨만 가능하며 변환도 유효하지 않습니다.
실행 효과로 볼 때, 문장급 촉발은 한 번만 촉발하고, 행급 촉발 횟수는 영향 행수에 따라 정한다
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
SQLite의 query로 망설임이것은 내가 처음 안드로이드 응용 프로그램 개발에서 망설이고, 그 후 해결 된 방법을 비망록으로 철자하고 있습니다. java에서 SQLite를 이용한 애플리케이션을 작성하는 동안 EditText에 입력된 item이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.