我有一组不同的表,它们在 DELETE 上有触发器。我想将已删除的行写入不同架构上的类似表中。
例如,假设我有几个不同的表:
CREATE TABLE A (val1 TEXT, val2 TEXT)
CREATE TABLE B (someval1 INT, someval2 TEXT, someval3 TEXT)
我在其他架构上有这些相同表的副本
CREATE SCHEMA backup;
CREATE TABLE backup.A (like A);
CREATE TABLE backup.B (like B);
每个非备份表 A 和 B 都有一个删除触发器(用 plpgsql 编写)。如果我从这两个表中删除一条记录,如何编写一个触发器函数将删除的记录写入关联的备份表?
最佳答案
我能够使用单个非表特定触发器函数将已删除的记录写入我的备份表:
create or replace function track_delete() returns trigger as
$body$
BEGIN
execute format('insert into backup.%I values($1.*)', tg_table_name) USING old;
END;
$body$
language plpgsql;
关于sql - Postgres 触发器 : write old record to new table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60877977/