将记录所有 SQL INSERT 和 SQL DELETE(并且仅记录这些命令)的 Ruby 文件

发布于 2024-11-14 14:24:50 字数 96 浏览 3 评论 0原文

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

I am working with a PostgreSQL database. I have written a .rb file I am using to manipulate data in the database. I want to be able to log all the SQL INSERTs and DELETEs elicited by this file. How do I go about that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

街道布景 2024-11-21 14:24:50

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

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.*;

At the start of your script, create the needed temporary tables, and adds two triggers, one on insert, one on delete, and have them fire for each row accordingly. it also works with rules:

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.*;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文