kem*_*mar 22 python django bulkinsert
有没有更有效的方法来做到这一点?
for item in item_list:
e, new = Entry.objects.get_or_create(
field1 = item.field1,
field2 = item.field2,
)
Run Code Online (Sandbox Code Playgroud)
Gle*_*ard 10
您无法使用get_or_create(甚至是create)进行体面的批量插入,并且没有用于轻松执行此操作的API.
如果你的表很简单,用原始SQL创建行并不是太痛苦,那就不太难了; 就像是:
INSERT INTO site_entry (field1, field2)
(
SELECT i.field1, i.field2
FROM (VALUES %s) AS i(field1, field2)
LEFT JOIN site_entry as existing
ON (existing.field1 = i.field1 AND existing.field2 = i.field2)
WHERE existing.id IS NULL
)
Run Code Online (Sandbox Code Playgroud)
其中%s是一个类似于("field1, field2"), ("field3, field4"), ("field5, field6")你必须自己创建和转义的字符串.