반응형
PostgreSQL에서 데이터 항목이 자동으로 삭제되는 "만료"시간을 설정하는 방법이 있습니까?
PostgreSQL의 데이터 항목에 "만료"시간을 설정하는 방법이 있습니까? EXPIRE
Redis 와 동등한 것을 생각하고 있습니다.
타임 스탬프를 저장하고 종료 된 항목을 확인하기 위해 사용 크론 작업을 수동으로 코딩하려는 것이 아닙니다 .
PostgreSQL에 기능을 제공하는 기본 기능을 제공하거나 제공하는 기능을 제공합니다.
기본 기능은 내장되어 있지 않지만, 목표가 필드를 자동으로 종료하고 염기 서열 논리를 포함 할 것입니다. (모든 크론 작업과 같은 외부이 없음)이라면 항상 트리거를 사용할 수 있습니다. 다음은 타임 스탬프가 1 분보다 오래된 테이블에서 행을 삭제하는 트리거의 예입니다. 동일한 테이블에 새 행이 삽입 될 때마다 실행됩니다. 더 이상 사용할 수 있습니다. 이를 위해 다음 웹 사이트를 사용했습니다. http://www.the-art-of-web.com/sql/trigger-delete-old/
CREATE TABLE expire_table (
timestamp timestamp NOT NULL DEFAULT NOW(),
name TEXT NOT NULL
);
INSERT INTO expire_table (name) VALUES ('a');
INSERT INTO expire_table (name) VALUES ('b');
INSERT INTO expire_table (name) VALUES ('c');
select * from expire_table;
timestamp | name
----------------------------+------
2014-09-26 15:33:43.243356 | a
2014-09-26 15:33:45.222202 | b
2014-09-26 15:33:47.347131 | c
(3 rows)
CREATE FUNCTION expire_table_delete_old_rows() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
DELETE FROM expire_table WHERE timestamp < NOW() - INTERVAL '1 minute';
RETURN NEW;
END;
$$;
CREATE TRIGGER expire_table_delete_old_rows_trigger
AFTER INSERT ON expire_table
EXECUTE PROCEDURE expire_table_delete_old_rows();
INSERT INTO expire_table (name) VALUES ('d');
select * from expire_table;
timestamp | name
----------------------------+------
2014-09-26 15:36:56.132596 | d
(1 row)
아니요. 기능은 없습니다.
나는 그것이 (1) 단지 "만료 된"타임 스탬프가하는 것 또는 (2) 타임 스탬프 + cron-job / pgAgent보다 더 많은 것을 볼 수 없습니다.
코어에 추가되는 일반적인 기능처럼 들리지 않습니다. cron-job 또는 아마도 백그라운드 작업자 프로세스 에서 호출 된 틱을 사용하여 이러한 종류의 작업을 처리 하는 확장 을 아주 간단하게 코딩 할 수 있습니다.
나는 pgxn 에서 아무것도 볼 수 없으므로 아마도 아직 많은 수요가 없었을 것입니다.
반응형
'IT' 카테고리의 다른 글
로그 백있는 패턴 문서는 어디에 있습니까? (0) | 2020.09.25 |
---|---|
Visual Studio- 사용자 지정 경로 매크로를 정의 할 위치 (0) | 2020.09.25 |
node-gyp이란? (0) | 2020.09.25 |
원격 측 소켓을 감지하는 방법은 무엇입니까? (0) | 2020.09.25 |
boost :: function 및 boost :: bind 작동 방법 (0) | 2020.09.25 |