2017-04-03 14 views
0

는 PostgreSQL을 내 테이블 구조입니다 :python Psycopg2 및 매개 변수 바인딩을 사용하여 postgres Array 열에 삽입하는 방법? 다음

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

내가 파이썬 바인딩 매개 변수를 사용하여 할당 테이블에 레코드를 삽입 할. 나는 코드 아래 시도 :

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 []이지만 표현식 유형은 [] –

답변

2

전송 lang[]에 전달 어레이 :

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

고맙습니다. 이것은 나를 위해 일했다. –