私が書いたpythonスクリプトを使用して、いくつかのcsvファイルからSQLite3データベースにデータを挿入しています。私は、スクリプトを実行すると、データベースへの最初の行を挿入しますが、2番目のはめ込みしようとすると、このエラーを与える:SQLite3のカラムがユニークでない
sqlite3.IntegrityError: columns column_name1, column_name2 are not unique.
それは本当であるcolumn_name1とcolumn_name2の値がの最初の2行で同じですcsvファイルしかし、これは私にとってはちょっと変わったようです。なぜなら、このエラーについて読むと、データベースの列の1つ以上に一意性制約があることを示しているからです。私は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()
この投稿はなぜ投票されましたか?私はそれが適切な研究背景を示し、問題の明確な説明をしたと思います。私は確かに自分のコードをコピー&ペーストして "これに何が問題なの?"と尋ねただけではありませんでした。 –