답변:
이전 데이터를 restrictions_deleted
삭제하기 전에 테이블 로 이동하면 됩니다. 이것은 OLD
데이터 유형으로 수행됩니다 . regulat INSERT
문을 사용하고 OLD
값을 삽입 할 값으로 사용할 수 있습니다.
CREATE TRIGGER moveDeleted
BEFORE DELETE ON restrictions
FOR EACH ROW
EXECUTE PROCEDURE moveDeleted();
CREATE FUNCTION moveDeleted() RETURNS trigger AS $$
BEGIN
INSERT INTO restrictions_deleted VALUES(OLD.column1, OLD.column2,...);
RETURN OLD;
END;
$$ LANGUAGE plpgsql;
create function
전에 호출해야 create trigger
합니다. 그리고 VALUES((OLD).*)
KayEss에 의해 제안 트릭은 좋은 것입니다.
다른 접근 방식을 사용하는 경우 테이블에 'deleted'부울 플래그를 추가하거나 'deleted_at'타임 스탬프를 추가하는 것을 고려해 보셨습니까?
또는 더 나은 방법은 데이터베이스 테이블에 대한 CRUD 액세스를 거부하고 트랜잭션 API에서 감사 내역을 처리하는 것입니다. :)
VALUES((OLD).*)