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
22 MySQL 시작할때 No directory, logging in with HOME=/ 에러 해결 방법, 홈 디렉토리 변경 digipine 2021.05.06 159
21 Docker를 통한 MySQL 설치하기 lizard2019 2021.04.15 172
20 Ubuntu mySql 완전 삭제하기 lizard2019 2021.04.15 184
19 MySQL root 비밀번호 변경하기 (MySQL 5.7버전 이상) lizard2019 2019.06.10 1955
18 MySQL Data Backup - Database Dump 방법 및 복구 방법 엉뚱도마뱀 2017.11.18 533
17 [PostgreSQL] 간단 사용법 digipine 2017.11.02 3901
16 MySQL 5.7.x 버전 root 및 유저 암호(Password) 변경 digipine 2017.11.02 478
» SQLite 활용 팁 3 - 다른 DB 테이블에 트리거 사용하기 digipine 2017.11.01 550
14 SQLite 활용 팁 2 - 트리거 실전 사용하기 digipine 2017.11.01 403
13 SQLite 활용 팁 2 - 트리거 실전 사용하기 digipine 2017.11.01 328
12 SQLite 활용 팁 1 - 트리거 활용하기 digipine 2017.11.01 310
11 Ubuntu에서 sqlite3 빌드 방법 digipine 2017.11.01 588
10 HTTP Multi Part Request Sample Format digipine 2017.11.01 681
9 서블릿(Servlet) 이란 무엇인가? siseong@naver.com 2017.11.01 432
8 Apache Tomcat 설치후 관리자 모드 실행 되지 않을때 문제 해결방법 digipine 2017.11.01 2130
7 Filter를 이용한 웹 프로그래밍 Filter 란 무엇인가? file siseong@naver.com 2017.10.31 301
6 Eclipse, JSP, Beans 실습하기 digipine 2017.10.29 2541
5 MS Access MDB를 위한 DB Connection String digipine 2017.10.29 1076
4 Choosing a free database - DB2 digipine 2017.10.29 1044
3 [Oracle] SQL*Plus 개요,각종 명령어들 digipine 2017.10.28 949
Board Pagination Prev 1 2 Next
/ 2