gpt4 book ai didi

sql - 如何防止删除表中的第一行(PostgreSQL)?

转载 作者:行者123 更新时间:2023-11-29 11:22:41 29 4
gpt4 key购买 nike

是否可以防止在 PostgreSQL 端删除表中的第一行?

我有一个类别表,我想防止删除默认类别,因为它可能会破坏应用程序。当然,我可以很容易地在应用程序代码中做到这一点,但在数据库中做到这一点会好得多。

我认为这与 delete 语句的规则有关,但我在文档中找不到任何与我的问题非常接近的内容。

最佳答案

您对规则系统的思考是正确的。 Here是指向与您的问题匹配的示例的链接。它比触发器更简单:

create rule protect_first_entry_update as
on update to your_table
where old.id = your_id
do instead nothing;
create rule protect_first_entry_delete as
on delete to your_table
where old.id = your_id
do instead nothing;

一些答案​​遗漏了一点: protected 行的更新也必须受到限制。否则,可以先更新 protected 行,使其不再满足禁止删除条件,然后可以删除更新的行,因为它不再 protected 。

关于sql - 如何防止删除表中的第一行(PostgreSQL)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/810180/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com