0

我想问一下,如果某些条件不满足,是否可以处理 drop table 命令并中断它?

4

1 回答 1

2

我猜你想问:

如何DROP TABLE根据某些应用程序定义的条件防止成功

如果是这样,您唯一的内置选项是使用权限。请参阅PostgreSQL 手册中的GRANTREVOKE

如果你想要更复杂的东西,你可以写一个ProcessUtility_hook,但这需要你用 C 写一个扩展,编译并加载到服务器中。

编写 aProcessUtility_hook实际上并不太难,但 PostgreSQL 9.2 和 9.3 定义之间存在差异,这意味着您需要单独的扩展。这是一个基本示例:https ://github.com/ringerc/scrapcode/tree/master/postgresql/example_processutility_hook这是一个 ProcessUtility 钩子,它实际上做了一些有用的事情:https ://github.com/ringerc/postgres/blob/bdr -reject-unsafe-commands/contrib/bdr/bdr_commandfilter.c

如果您没有 C 编程经验并且没有时间,那么 aProcessUtility_hook不适合您。

另请参阅:如何防止表被删除?

于 2013-07-02T07:41:44.507 回答