我需要向数据库写入许多简单的记录,并且使用 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
,因为数据库中已经有一些记录。