Psycopg2 Postgres Удаление очень длинного массива для вставки его в столбец таблицы - PullRequest
2 голосов
/ 01 мая 2020

Моя база данных находится на postgres и является локальной

У меня есть массив в виде:

[1,2,3, ... 2600]

Как видите, это очень длинный массив, поэтому я не могу набирать элементы один за другим, чтобы вставить их. Поэтому я хотел использовать функцию unnest (), чтобы сделать это так:

1

2

3

|

2600

и, возможно, go оттуда, однако мне все еще нужно написать unnest как unnest ( массив [1, ..., 2600]) для работы, но, разумеется, он не работал

Итак, как мне вставить массив в виде строк в одном и том же столбце одновременно?

1 Ответ

0 голосов
/ 01 мая 2020

Вы можете использовать execute_values для объединения всех ваших данных в таблицу:

import psycopg2
from psycopg2.extras import execute_values

conn = psycopg2.connect(conn_string)
cursor = conn.cursor()
insert_query = "insert into table_name (col_name) values %s"

# create payload as list of tuples
data = [(i,) for i in range(1, 2601)] 

execute_values(cursor, insert_query, data)
conn.commit()
...