トリガーを作成して、変更 (更新または削除) を行うたびに、古いデータを新しいテーブルに (同じテンプレートで) コピーするようにしたいと考えています。
私はこのコードを試しました:
create table restrictions(ID int,name text);
insert into restrictions values(122,'suresh');
select * from restrictions;
create table restrictions_deleted(ID int,name text);// this is my duplicate table for keeping information of all updations.
CREATE OR REPLACE FUNCTION moveDeleted() RETURNS trigger AS $$
BEGIN
INSERT INTO restrictions_deleted VALUES(OLD.ID, OLD.name);
RETURN OLD;
END;
$$ LANGUAGE plpgsql;
CREATE OR REPLACE TRIGGER moveDeleted
BEFORE DELETE ON restrictions
FOR EACH ROW
EXECUTE PROCEDURE moveDeleted();
delete from restrictions where ID=122;
select * from restrictions_deleted;
このコードは、削除されたすべてのデータを複製テーブルに記録できます。しかし、更新についても同じことをしたいです。
何か提案、アイデアはありますか?