Postgresql upsert 返回 id 冲突?

Ary*_*rya 3 postgresql

我现在有以下查询,它在成功插入后返回 id

INSERT INTO match (match_id) values(?) ON CONFLICT DO NOTHING RETURNING id
Run Code Online (Sandbox Code Playgroud)

我怎样才能返回id冲突时已经存在的行?

dmf*_*fay 6

使用ON CONFLICT DO UPDATE相反 来确保查询在一行上运行,因此可以返回一些内容:

CREATE TABLE match(id serial PRIMARY KEY);

INSERT INTO match (id) VALUES (1)
ON CONFLICT (id) DO UPDATE
  SET id = excluded.id
RETURNING id;
Run Code Online (Sandbox Code Playgroud)