나는 데이터베이스에 트랜잭션 시작 시간을 기록하고 각 트랜잭션에 대한 시간 제한이 있습니다. 시간이 초과되면 경보를 발생시키고 싶습니다. 이 일을 생각할 수있는 두 가지 방법이 있습니다.postgresql에서 시간 계산
1) 제한을 초과하는 레코드를 선택할 수 있도록 데이터베이스가 자동으로 계산을 수행하도록하십시오.
2) 스크립트에서 함수를 호출하고 현재 시간을 제공하고 데이터베이스에서 각 트랜잭션의 시간을 계산 한 다음 오래된 것을 선택하십시오.
나는 첫 번째 솔루션을 선호하지만 어떻게해야할지 모르겠다. PostgreSQL을 사용하고 있습니다. 아무도 도와주지? 감사.
이 내 두 번째 솔루션입니다 스크립트에서 각각에 대해 계산 :
그래서 당신은 같은 (아직 테스트)를 할 수 있습니다. 데이터베이스가 시간 초과 된 경우 레코드에 자동으로 플래그를 지정할 수있는 방법이 있습니까? – Michael
내가 아는 것은 아닙니다. 트리거를 만들 수는 있지만 일단 트리거를 변경하면 행에서만 실행됩니다. 저장 프로 시저를 만들 수는 있지만 여전히 시작해야합니다. 보기를 만들 수 있지만 최선의 방법 일 수 있습니다. 그러나 성능 측면에서 볼 때 위의 쿼리를 수행하는 것과 실제로 다르지 않습니다. 제한이보기에 숨겨져 있다는 것입니다. (내 취향이 아니 개인적으로 - 나는 애플 리케이션에서 그런 종류의 논리를 유지하고 싶습니다.) –
@ 마이클 당신은 뷰에서 그것을 감쌀 수 있습니다. 예 : CREATE VIEW some_stable_with_expires AS SELECT *, (timeout_column> CURRENT_TIMESTAMP) AS is_expired from some_table; –