将记录所有SQL INSERT和SQL DELETE(以及仅那些命令)的Ruby文件

时间:2011-06-07 18:31:33

标签: sql ruby postgresql sql-insert sql-delete

我正在使用PostgreSQL数据库。我编写了一个.rb文件,用于操作数据库中的数据。我希望能够记录此文件引出的所有SQL INSERT和DELETE。我该怎么做?

1 个答案:

答案 0 :(得分:2)

在脚本开始时,创建所需的临时表,并添加两个触发器,一个在插入,一个在删除,并相应地为每行触发。它也适用于规则:

create temporary table foo_log_ins (like foo);

create rule log_foo_ins as
on insert to foo
do also
insert into foo_log select new.*;

create temporary table foo_log_del (like foo);

create rule log_foo_del as
on delete to foo
do also
insert into foo_log_del select old.*;