【问题标题】:Insert (if not present) and return id插入(如果不存在)并返回 id
【发布时间】:2017-10-26 05:17:53
【问题描述】:

我有一个独特的专栏。如果它不存在,我想插入一行,然后返回该行的id

INSERT INTO t(a) VALUES ('a') ON CONFLICT DO NOTHING RETURNING t.id;

什么都不返回。 Here's a fiddle.
我正在寻找如何每次都获得 1,无论“a”是否是新插入的。

【问题讨论】:

标签: postgresql postgresql-9.5


【解决方案1】:
with i as (
    INSERT INTO t(a) VALUES ('a') ON CONFLICT (a) DO NOTHING RETURNING id
)
select id from i
union all
select id from t where a = 'a'
limit 1

【讨论】:

    猜你喜欢
    • 2019-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-28
    • 1970-01-01
    • 2017-02-10
    • 2013-08-14
    相关资源
    最近更新 更多