2016-02-25 80 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)'不是必需的 –