多くの単純なレコードをデータベースに書き込む必要があり、orm メソッドを使用すると非常に遅いため、生の SQL を試すことにしました。私はコードを書きました、ここにあります:
for row in rows:
name = row.split('\t')[0].lower()
print name
try:
cursor.execute("INSERT INTO domain_browser_domain (name) VALUES (%s)", [name])
except django.db.utils.IntegrityError:
continue
問題は...実際にはデータベースに何も書き込まないことです。フィールドname
は一意として定義されているため、execute
メソッドがtry
ブロックにない場合、IntegrityError
データベースに既にいくつかのレコードがあるため、メソッドが返されます。