2016-02-25 56 views
2

我似乎无法让这个postgresql执行工作。插入与数组在值冲突

INSERT INTO table (x, y) 
VALUES ('somestring', '{0.123, -0.123}') 
ON CONFLICT DO NOTHING RETURNING id; 

我得到的错误:

ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near "ON"

我已经尝试了各种各样的事情,我不会在PostgreSQL中或SQL十分精通一般。我在Postgresql的9.5.1版本。

我也在使用SQLAlchemy(Python Lib)。有没有办法来检查我的SQLAlchemy正在使用什么版本的Postgresql?

+1

' “somestring”'应该是单引号。 – AlexM

+1

澄清@pumbo的意思:标准SQL对区分大小写的标识符(如表名和列名)使用双引号,包含空格,...;单引号用于字符串文字。 –

+0

啊谢谢你的提示!尽管如此,这仍然不能解决问题:/ – sihrc

回答

0

您必须指定可能导致冲突的原因。从文档

例子:

INSERT INTO distributors (did, dname) VALUES (7, 'Redline GmbH') 
    ON CONFLICT (did) DO NOTHING; 

编辑:我指的是(DID)部分

+0

对于'do nothing'选项,'(did)'不是必需的 –