想象一下,你有以下情况:
for i in xrange(100000):
account = Account()
account.foo = i
account.save
显然,Django执行的100,000个INSERT语句需要一些时间.能够将所有这些INSERT组合成一个大的INSERT会更好.这是我希望我能做的事情:
inserts = []
for i in xrange(100000):
account = Account()
account.foo = i
inserts.append(account.insert_sql)
sql = 'INSERT INTO whatever... ' + ', '.join(inserts)
有没有办法使用QuerySet执行此操作,而无需手动生成所有这些INSERT语句?
最佳答案 您可以使用原始SQL.
通过Account.objects.raw()或使用django.db.connection对象.
如果要保持数据库不可知性,这可能不是一个选项.
http://docs.djangoproject.com/en/dev/topics/db/sql/
如果你正在做的是一次性设置,也许使用夹具会更好.