Я загрузил CSV-файл для тестирования и хотел бы загрузить все данные в базу данных postgresql. Однако мне нужно иметь автоинкрементный идентификатор в качестве первого столбца БД. Сначала я создал базу данных с помощью SQL-запроса:
CREATE TABLE pps3
( id integer NOT NULL DEFAULT
nextval('products_product_id_seq'::regclass),
"brandname" character varying(25),
"type1" integer,
"type2" integer,
"type3" integer,
"Total" integer )
Данные CSV:
"brandname","type1","type2","type3","Total"
"brand1","0","0","32","32"
"brand1","0","12","0","12"
Я пытался переместить данные из CSV с помощью этого кода:
import csv
import psycopg2
conn = psycopg2.connect("host=localhost dbname=my_django_db user=postgres")
cur = conn.cursor()
with open('PPS-Sep.csv', 'r') as f:
reader = csv.reader(f)
next(reader) # Skip the header row.
for row in reader:
cur.execute(
"INSERT INTO pps3 VALUES (%s, %s, %s, %s,%s)",row)
conn.commit()
Это работает нормально, если я не создаю столбец начального идентификатора.
Однако, если я запускаю его таким образом, я получаю сообщение об ошибке, что я пытаюсь вставить название бренда в идентификатор.
Есть какие-нибудь идеи о том, как обойти это?