我想防止在Postgres数据库中的表上删除sql行,以确保除了软删除之外没有其他方法可以删除行,这实际上是对" active&#34的更新;该行的列被软删除。
这可以使用Postgres sql规则实现还是有其他方法??
感谢代码示例。
答案 0 :(得分:1)
以下作品:
CREATE OR REPLACE FUNCTION enforce_soft_delete() RETURNS VOID AS $$
BEGIN
RAISE EXCEPTION 'only soft deletes allowed';
END;
$$ LANGUAGE plpgsql;
CREATE OR REPLACE RULE prevent_account_deletion AS ON DELETE
TO account
DO INSTEAD SELECT enforce_soft_delete();
答案 1 :(得分:0)
revoke update on the_table
from public, another_role [cascade | restrict]