2017-04-03 112 views
0

以下是我的表結構中的PostgreSQL:如何使用python Psycopg2和參數綁定插入postgres數組列?

CREATE TYPE lang AS ENUM ('english','hindi','marathi'); 
CREATE TABLE assignment (
    title varchar(100), 
    ids lang[] 
); 

我想用參數Python綁定插入在分配表中的記錄。我想下面的代碼:

cursor.execute('insert into assignment (title, ids) values (%s, %s)',["person1",["english","hindi"]]) 

但它產生像無效的查詢:

insert into assignment (title, ids) values ('person1', ARRAY['english','hindi']) 

,因此我得到語法錯誤的查詢。

正確的查詢是:

insert into assignment (title, ids) values ('person1', '{"english","hindi"}') 

有人可以讓我知道的方式使用參數綁定生成正確的查詢?

+0

即有效陣列的語法。什麼是錯誤信息? –

+0

錯誤:列「ids」的類型爲lang [],但表達式的類型爲text [] –

回答

2

角色傳遞的數組到lang[]

cursor.execute(''' 
    insert into assignment (title, ids) 
    values (%s, %s::lang[]) 
    ''', ["person1",["english","hindi"]]) 
) 
+0

謝謝。這對我有效 –

相關問題