trigger 라고 하는 것은 사용자로 부터 insert/update/delete/select 등의 특정 작업이 발생하여야만이 수행이 됩니다. 그러므로 cron 처럼 서버 수준에서 자동으로 한 시간 간격으로 특정작업이 되게 할 수는 없습니다.
만약 특정 event 가 발생했을때 그 시간을 얻어서 얻어서 저장해 두고 이전에 발생한 이벤트가 발생한 시간과 비교해서 한시간 이상이면 원하는 작업을 진행하는 식은 가능할 것으로 생각됩니다. 그렇다면 문제는 현재의 시간을 구하고, 이전의 시간과 비교해서 한시간이 지났는가를 판단하는 query 문이 문제가 될 것으로 생각되는군요. 이것은 어떻게 해결할 방법이 있을 것으로 생각됩니다.
select date_part('epoch',age('now','epoch'));
이런 query를 주면 unix time() 함수의 값을 구할수 있습니다. 이 값은 1970년 1월1일 0시0분0초로 부터 현재까지 초과한 시간을 초단위로 표시한 값입니다. 이 값을 특정 테이블에 저장해 두고서 3600초 이상이 지난 시점에서 특정 작업을 해 주면 해결이 되지 않을까요.
>>초보 님께서 쓰시길<<
:: 1시간이 지날때 마다 자동으로 DB에 어떤 작업(삽입,삭제등..)을 해야 하는데 시간 체크를 어떤 식으
:: 로 하나요? 어떻게 구현해야 하죠? 설명좀 부탁드립니다...
|