首页 > 解决方案 > 插入或选择并返回密钥

问题描述

如果该行不存在,则在数据库中插入一行并返回其 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。

有更好的解决方案吗?

标签: postgresql

解决方案


推荐阅读