본문 바로가기

트리거3

트리거 생성(IF문 활용해서 Not Null인 컬럼만 트리거 작동) 트리거를 만들 상황이 생겼습니다. 간단한 트리거이긴 하지만, 특정 테이블 컬럼에 INSERT나 UPDATE 발생 시 다른 테이블에 로깅을 위해 해당값을 삽입하는 트리거입니다. 단, NULL 값은 필요없으므로 삽입할 필요가 없는 상황입니다. 테스트 환경에서 대략 생성하여 테스트 수행시 NULL값은 제외하고 잘 작동되는것을 확인하였습니다. 1.테이블 생성 --데이터를 삽입할 테이블 CREATE TABLE TESTLINK (a VARCHAR2(10); --데이터 삽입시 트리거가 insert 할 테이블 CREATE TABLE TESTLINK2 (a VARCHAR2(10)); 2.트리거 생성 TESTLINK의 A 컬럼에 INSERT나 UPDATE 발생시 작동 CREATE OR REPLACE TRIGGER TEST.. 2020. 12. 7.
특정 테이블의 컬럼의 Update만 인식하는 Trigger 생성하기 트리거란 일정 이벤트(DML)이 일어났을 때 자동으로 수행되는 사용자 정의 프로시저입니다. 보통은 테이블의 DML 작업이 있을 때 발동되는 트리거가 대부분인데요. 이번에는 테이블 내의 특정 컬럼만 트리거를 거는 방법을 알아보겠습니다. 시나리오는 특정 테이블의 컬럼에 Update가 되면 다른 테이블에 그 값이 Insert 되는 트리거를 생성하고 설정된 컬럼과 설정되지 않은 컬럼을 Update해보고 비교해보도록 하겠습니다. 테스트 테이블은 sample schema인 emp테이블을 활용하겠습니다. TEST@ysbae>create table tb_tri_test as select * from emp; Update값을 받을 테이블을 생성해줍니다. create table a_tr (sal number(10)); 트.. 2020. 8. 27.
테스트를 위한 샘플 트리거,샘플 패키지 만드는 소스 제가 테스트를 위해 사용했던 샘플 트리거와 샘플 패키지만드는 쿼리입니다. 트리거 원본테이블입니다. Sql>create table tts_1 as select l.*, o.* from (select dbms_random.string('l',10) as name from dual) o, (select level as lvl from dual connect by level create table tts_3 2 as select * from tts_1 where 1=2; Table created. 트리거 생성 create or replace trigger trg_tts_1 after insert on tts_1 for each row declare begin insert into tts_3 values (:ne.. 2020. 1. 4.