logo

English

이곳의 프로그래밍관련 정보와 소스는 마음대로 활용하셔도 좋습니다. 다만 쓰시기 전에 통보 정도는 해주시는 것이 예의 일것 같습니다. 질문이나 오류 수정은 siseong@gmail.com 으로 주세요. 감사합니다.

SQLite 활용 팁 3 - 다른 DB 테이블에 트리거 사용하기

by digipine posted Nov 01, 2017
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print

SQLite에서는 Attach 하는 방법으로 다른 DB의 테이블을 마치 내 DB안의 테이블 처럼 사용할 수 있습니다.
그런데 Trigger도 사용이 가능할까요. 예를 들어 백업 용으로 같은 DB를 두개 만들고 한 DB 테이블에
INSERT가 되면 백업용 DB파일에도 같은 내용이 INSERT 되도록 Trigger를 만들 수 있을까하는 것인데

원칙적으로는 안된다고 한다. 
http://www.sqlite.org/lang_createtrigger.html 참조하시라
그런데 Temporary 트리거라는 것을 이용하면된다.
다른 DB 테이블은 그 DB가 Attach되지 않으면 사용할 수 없다 따라서 정식 트리거로 등록할 수 없는데
아래와 같이 Temporary 로 등록하는 편법을 사용하면 할수있다. 
그런데 INSERT 되는 Table이 Attcah 된 테이블이어야 한다는 제약이 따른다.

그나마 될 수 있다는 것이 다행이다.

 

아래 예제를 참조

CREATE TEMPORARY TRIGGER [LOG_BACKUP_TRIGGER]
AFTER INSERT ON BACKUP.[USER_LOG2] /* Attach 된 테이블에 INSERT */
FOR EACH ROW
BEGIN
     INSERT INTO USER_LOG(REGTIME, UID, CARD_TYPE, GRADE, REISSUE, MODE, 
                                   MATCHING_TYPE, MANAGER, STATUS, AUTH, KEY)
            VALUES(new.REGTIME, new.UID, new.CARD_TYPE, new.GRADE, new.REISSUE, 
                 new.MODE, new.MATCHING_TYPE, new.MANAGER, new.STATUS, 
                             new.AUTH, new.KEY); /* MAIN 테이블에 INSERT */
END

TAG •

List of Articles
No. Subject Author Date Views
19 [PostgreSQL] 간단 사용법 digipine 2017.11.02 3153
18 Eclipse, JSP, Beans 실습하기 digipine 2017.10.29 1007
17 Apache Tomcat 설치후 관리자 모드 실행 되지 않을때 문제 해결방법 digipine 2017.11.01 632
16 MS Access MDB를 위한 DB Connection String digipine 2017.10.29 459
15 SyBase 사용법 요약 digipine 2017.10.28 401
14 Ubuntu에서 sqlite3 빌드 방법 digipine 2017.11.01 392
13 SyBase 와 JSP 연동 digipine 2017.10.28 380
12 [Oracle] SQL*Plus 개요,각종 명령어들 digipine 2017.10.28 375
11 MySQL Data Backup - Database Dump 방법 및 복구 방법 엉뚱도마뱀 2017.11.18 338
» SQLite 활용 팁 3 - 다른 DB 테이블에 트리거 사용하기 digipine 2017.11.01 306
9 MySQL 5.7.x 버전 root 및 유저 암호(Password) 변경 digipine 2017.11.02 300
8 MySQL root 비밀번호 변경하기 (MySQL 5.7버전 이상) lizard2019 2019.06.10 273
7 Choosing a free database - DB2 digipine 2017.10.29 254
6 서블릿(Servlet) 이란 무엇인가? siseong@naver.com 2017.11.01 220
5 SQLite 활용 팁 2 - 트리거 실전 사용하기 digipine 2017.11.01 197
4 Filter를 이용한 웹 프로그래밍 Filter 란 무엇인가? file siseong@naver.com 2017.10.31 154
3 SQLite 활용 팁 2 - 트리거 실전 사용하기 digipine 2017.11.01 141
2 SQLite 활용 팁 1 - 트리거 활용하기 digipine 2017.11.01 127
1 HTTP Multi Part Request Sample Format digipine 2017.11.01 121
Board Pagination Prev 1 Next
/ 1