PostgreSQL 逻辑删除保证数据唯一
PostgreSQL About 441 words场景
有用户表(username,del_flag),保证用户名唯一。
方案一
username唯一索引,逻辑删除后不能再新建相同名称的用户。
方案二
username - del_flag联合唯一索引(del_flag是布尔类型),第二次删除数据库会抛出异常。
方案二
username - del_flag联合唯一索引(del_flag是时间类型或文本类型),未删除的用户del_flag为固定值,删除时设置del_flag为最新的时间戳。
方案四(推荐)
username唯一索引,删除用户后插入到user_deleted表备份。
实现
使用with语句,delete的同时insert到备份表中。
with cte as
(
delete from sys_user where username = 'admin' returning *
)
insert into sys_user_deleted select * from cte;
Views: 1,377 · Posted: 2023-11-20
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓
Loading...