Postgres 11在冲突选择中插入*

时间:2019-07-15 03:52:11

标签: postgresql postgresql-11

我正在尝试在表中插入行,如果插入成功,我将返回新插入的行。如果该插入操作失败,我将使用一些我已经知道在该行上的值来选择一行。

例如,表“报告”有3列,到目前为止,我有以下内容:

INSERT INTO reports (col2, col3) VALUES ($1, $2) 
  ON CONFLICT ON CONSTRAINT custom_index DO 
SELECT * FROM reports WHERE col1=$1 AND col2=$2;

对于那些会问的人,使用以下方法创建了custom_index:

CREATE UNIQUE INDEX custom_index ON reports (col2) INCLUDE (col3);

我当前遇到的错误是

  

“ SELECT”处或附近的语法错误

1 个答案:

答案 0 :(得分:0)

在冲突中不允许选择。

查看文档https://www.postgresql.org/docs/current/sql-insert.html

相关问题已经回答。Postgres 9.5 ON CONFLICT DO SELECT