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: 542 · Posted: 2023-11-20
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓
Loading...