database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 9015 게시물 읽기
No. 9015
login 트리거 생성 방법 질문
작성자
노진광(kite20)
작성일
2012-08-07 16:23
조회수
10,477

안녕하세요 요즘 자주 질문 드립니다.    프로젝트가 막바지라 이해 바랍니다. ~

제가 하려는 작업은 세션이 접속될 경우  저희 모듈을 초기화 하고 세션오프 시에 

자원 해제를 하려 합니다. 

오라클처럼 세션이 로그인 , 로그오프 된경우에 트리거를 걸수 있는 방법이 없어서 

여러생각을 해보다 몇가지 테스트를 해보고있습니다.  제가 하려는게 가능한건지 조언 바랍니다. 

view 에 트리거를 걸기위하여 버젼은 9.1.0 입니다. 

작업 방벙 

1. 로그인 정보 테이블을 뷰테이블로  생성 합니다.   (create table stat_activity  select *  FROM pg_catalog.pg_stat_activity)

2. 중복된 초기화와 자원 해제가 되지 않게 하기위하여    초기화후  pid 를 인서트 하고 해제후 pid 를 삭제 할수 있도록 pid 테이블 생성  (    create table procpid (  pid integer    );  )

3. 인서트 정보가 들어올 경우 pid 테이블의 정보를 확인 후 인서트 된 pid 가 없을경우 초기화후 pid 테이블에 현재 입력받은 pid를 인서트 합니다. 

4. 삭제 정보가 들어올 경우 입력 받은 pid  가 현재 자신의 pid 가 맞는지 확인후 맞다면 자원 해제후 pid 테이블에  입력받은 pid 를 삭제 합니다. 

 

트리거 쿼리까지 생성시에 에러는 없이 생성이 됩니다. 

다만 새 세션을 접속 했을경우 트리거가 동작 하지 않습니다.  

로그에도 정보가 남지않아 동작을 했는지 동작중에 에러가 난건지 파악 하기 힙든 상황입니다. 

 

위 작업 자체가 가능 한건지 부터 알고 싶습니다.  

 

이상 입니다.

감사합니다. 

 

 

 

 

 

 

이 글에 대한 댓글이 총 2건 있습니다.

 create table ... as select ... where false 

형태로 빈 테이블을 만들고, 

트리거를 추가하고, 

insert into ... select

로 자료를 넣으면, 

트리거가 작동되면서 원하는 작업을 할 수 있지 않을까싶네요. 

 

 

김상기(ioseph)님이 2012-08-08 12:42에 작성한 댓글입니다.

_PG_init , _PG_fini 을 활용하여 처리 하였습니다. 

필요하신분은 참고 하시기 바랍니다. 

http://postgis.org/documentation/postgis-doxygen/d1/d19/postgis__module_8c-source.html

감사합니다. 

 

 

노진광(kite20)님이 2012-09-04 14:34에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
9018postgresql 9.1 실행시 오류 [1]
김인수
2012-08-21
10272
9017윈도우 7 DB에서 "클라이언트 연결에서 예상치 않은 EOF 발견됨" [1]
이인규
2012-08-16
10746
9016실행계획 관련하여 문의드립니다. [2]
김혁민
2012-08-09
11680
9015login 트리거 생성 방법 질문 [2]
노진광
2012-08-07
10477
9014설치할때 CPU 코어수 사용 제약이 가능할까요? [1]
지형준
2012-08-06
9545
9013문자셋 관련 문의 드립니다. [1]
박병훈
2012-08-04
9173
9012사용자 정의 함수를 하나 만드는데 질문좀요 - * [5]
김현진
2012-07-31
9710
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.020초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다