Я вставляю данные из некоторых файлов csv в базу данных SQLite3 с написанным мной скриптом python. Когда я запускаю сценарий, он вставляет первую строку в базу данных, но дает эту ошибку при попытке вставке второй:Столбцы SQLite3 не уникальны
sqlite3.IntegrityError: columns column_name1, column_name2 are not unique.
Действительно значения в column_name1 и column_name2 одинаковы в первых двух строках файл csv. Но это кажется мне немного странным, потому что чтение об этой ошибке указывает на то, что это означает ограничение уникальности для одного или нескольких столбцов базы данных. Я проверил данные базы данных с помощью SQLite Expert Personal и не обнаружил ограничений уникальности для текущей таблицы. Кроме того, ни одно из полей, которые я вводил, не указывает первичный ключ. Кажется, что база данных автоматически назначает их. Любые мысли о том, что может вызвать эту ошибку? Благодарю.
import sqlite3
import csv
if __name__ == '__main__' :
conn = sqlite3.connect('ts_database.sqlite3')
c = conn.cursor()
fileName = "file_name.csv"
f = open(fileName)
csv_f = csv.reader(f)
for row in csv_f:
command = "INSERT INTO table_name(column_name1, column_name2, column_name3)"
command += " VALUES (%s, '%s', %s);" % (row[0],row[1],row[2])
print command
c.execute(command)
conn.commit()
f.close()
Зачем этот пост проголосовали? Я думаю, что он показал адекватную исследовательскую базу и дал четкое объяснение этой проблемы. Я, конечно, не просто копировал и вставлял свой код и спрашивал: «Что случилось с этим?» –