postgresql - 插入或选择并返回密钥
问题描述
如果该行不存在,则在数据库中插入一行并返回其 ID 的最简单方法是什么,否则返回该单词的 ID?
INSERT INTO mytable (name)
SELECT 'd'
WHERE NOT EXISTS (SELECT id FROM mytable WHERE name='d')
RETURNING id
此代码仅在该行不存在时才有效。
我要么先这样做,然后再进行 SELECT,或者尝试使用 ON CONFLICT DO NOTHING 插入,然后再次进行 SELECT。
有更好的解决方案吗?
解决方案
推荐阅读
- docker - ubuntu 18.10 和 docker 上的 ghostscript pdf/a 转换问题
- css - 如何在 CSS 中指定 == $0?
- android - Fabric apiSecret 是做什么用的?
- c - 编写嵌入式驱动程序的序列
- java - 如何让我的 HashMap 正确打印到文件
- javascript - Chrome:所选元素未收到“复制”事件
- docker - Gitlab CI with docker+machine - 使用多个容器测试应用程序
- java - Drools 嵌套聚合
- ios - 未调用具有自定义 isSelected 设置器的 MKAnnotationView 子类
- amazon-web-services - AWS Athena 查询分区