postgresql - 从 PostgreSQL 表中弹出一行
问题描述
PostgresSQL 中的 Redis LPOP命令等效于什么?
例如,在下表中以包含两行 a 和 bthings
的单列命名:thing
thing
----
a
b
原子地删除并返回表中的一行的正确命令是什么?使用上面的示例,我希望它返回单行 ('a') 并将其作为事务/锁的一部分删除。
解决方案
您可以使用数据修改公用表表达式来做到这一点:
with deleted as (
delete from things
where thing = 'a'
returning *
)
select *
from deleted;
推荐阅读
- python - 从对象到int的系列值?
- javascript - 从 Firestore 嵌套/子集合中分离侦听器的问题
- dart - 颤振 CocoaPods 错误(运行 pod install)
- c++ - 错误使用 nullptr 导致编译器错误
- sql - 如何删除表中的重复数据(Postgres)
- ruby-on-rails - 在rails中has_many的对立面是什么?
- c# - 更正元素中的错误 MSB4102“项目”属性
是无效的。路径中的非法字符 - python - 日期时间说我的时间格式错误但不是
- c# - 如何使用 LINQ 组合列表中行中的数据?
- c++ - 定义一个类`MultiInherit
>` 从 `X1,X2,...` 继承