0
假設我有兩個表,分別爲a
和b
,它們都有兩行int
和date
。我想寫一個觸發器,當從表a
刪除行時,將它們複製到表b
,並將日期更改爲當前日期。因此,如果我今天從表a
中刪除了13, 2015-01-01
行,則13, 2015-06-08
被插入表b
。 關於如何完成此任務的任何想法?觸發器在Postgresql中插入已刪除的行
假設我有兩個表,分別爲a
和b
,它們都有兩行int
和date
。我想寫一個觸發器,當從表a
刪除行時,將它們複製到表b
,並將日期更改爲當前日期。因此,如果我今天從表a
中刪除了13, 2015-01-01
行,則13, 2015-06-08
被插入表b
。 關於如何完成此任務的任何想法?觸發器在Postgresql中插入已刪除的行
create or replace function a_adr_tf() returns trigger as $$
begin
insert into b(aid, awhen) values (old.id, now());
return old;
end;
$$ language plpgsql;
create trigger a_adr after delete from a for each row execute procedure a_adr_tf();
請注意,此觸發器不會處理表b
中可能的重複主鍵。我假設A
中的列被稱爲id
和when
,並且在B
中它們被稱爲aid
和awhen
。
您可以通過具有PK的類型串行B
解決B
主鍵的問題,或者,如果你只想要一個在B
具有相同id
從A
行與觸發器從B
刪除時新行插入A
。
非常感謝,我唯一不知道的就是'old.id'部分。 – eilchner
你有什麼試過?你所描述的聽起來不難,所以我不清楚究竟是什麼給你帶來麻煩。 –
我有一個功能的問題。我不知道刪除的行是否存儲在某個地方,我可以從中複製它們。我曾想過製作一張臨時表格,我可以改變日期,但就是這樣。 – eilchner
發佈你的函數的代碼。 –