我正在尝试在表中插入行,如果插入成功,我将返回新插入的行。如果该插入操作失败,我将使用一些我已经知道在该行上的值来选择一行。
例如,表“报告”有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”处或附近的语法错误
答案 0 :(得分:0)
在冲突中不允许选择。
查看文档https://www.postgresql.org/docs/current/sql-insert.html。
相关问题已经回答。Postgres 9.5 ON CONFLICT DO SELECT