Как вставить столбец массива postgres, используя Python Psycopg2 и привязку параметров?
Ниже приведена структура моей таблицы в postgresql:
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"}')
Может кто-нибудь сообщить мне способ создания правильного запроса с помощью привязки параметров?
1 ответ
Приведите переданный массив к lang[]
:
cursor.execute('''
insert into assignment (title, ids)
values (%s, %s::lang[])
''', ["person1",["english","hindi"]])
)