테이블 이력(관련 테이블) 저장시 일련번호(Sequence) Trigger로 부여하기
샘플
CREATE TABLE TB_TEST1 ( CREATE TABLE TB_TEST2 ( CREATE SEQUENCE SQ_TB_TEST1 CREATE OR REPLACE TRIGGER TG_TEST1 CREATE OR REPLACE TRIGGER TB_TEST2 INSERT INTO TB_TEST1 VALUES (1, '한국'); SELECT * FROM TB_TEST1; SELECT * FROM TB_TEST2; UPDATE TB_TEST1 SET NM = '코리아' WHERE NUM = 1; SELECT * FROM TB_TEST1; SELECT * FROM TB_TEST2; |
TB_TEST2 의 IDX 값을 해당 NUM의 대한 일련번호를 사용할 경우에는 MAX를 사용해야 하나 FOR UPDATE를 사용하여 LOCK을 걸어야 하며 해당 ROW가 없을 경우에는 LOCK을 걸 수 없다.
그럴 경우 채번 테이블 생성하는 샘플을 보고 함수를 만들어 사용할 수 있다.
참고 : http://tyboss.tistory.com/entry/Oracle-채번-테이블-사용하여-채번하기-채번하기
ALTER TABLE TB_TEST1 ADD IDX NUMBER DEFAULT 0; |
위처럼 TB_TEST1에 IDX 컬럼을 추가한 후 참고 링크의 채번 테이블 처럼 사용하면 된다.