我有一个关于触发器的一般问题。无论如何,对SQL数据库进行编程的方式是,无论何时触发触发器,SQL都会告诉我们删除或编辑了哪些数据行以符合某个标准。在我的情况下,我使用postgreSQL并且我有一个特定的触发器,如果满足某个条件,它会删除插入表中的某些行。有什么我可以添加或更改postgreSQL中的设置,这将指示在这种情况下删除了哪些行和删除了多少行:
CREATE TRIGGER unknowns
AFTER INSERT
ON employees
FOR EACH ROW
EXECUTE PROCEDURE delete_rows();
CREATE OR REPLACE FUNCTION delete_rows()
RETURNS trigger AS
$BODY$
BEGIN
DELETE FROM employees WHERE Customer = 'unknown';
RETURN NEW;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
答案 0 :(得分:1)
您通常不会在数据库级别执行此操作。
通常,您可以修改触发器以将更改的数据存储在存档/历史记录表中。然后,您将记录已更改的数据,更改的数据以及更改的数据。
如果您特别想了解触发器中已启动的更改,我不确定是否有任何机制可以区分这些更改与用户启动的更改。