как игнорировать дубликаты в postgres с executemany в версии 9.414? - PullRequest
0 голосов
/ 05 ноября 2018

Я работаю с postgres 9.414. Мне известна команда «on конфликта» в команде вставки, но она поддерживается только в версии 9.5 и выше. Любой обходной путь ниже этого, например, я могу позаботиться о вставке многих элементов на ходу, используя executemany из Python?

Мой исполняемый блок:

db_cursor.executemany('''insert into "tablename" ("col1","col2")''', data)

данные: список всех значений в кортежах [('val11','val12'),('val21', 'val22'), ('val31', 'val32')] для вставки.

Большое спасибо,
Sudip

1 Ответ

0 голосов
/ 05 ноября 2018

Вы можете сначала удалить дубликаты из списка кортежей, преобразовав их в набор. Затем вы можете запустить команду excecutemany:

list(set([('val11','val12'),('val21', 'val22'), ('val31', 'val32')]))

Теперь у вас есть все уникальное в списке кортежей.

...