0
我有什麼本質上是一個表,這是當我在數據庫中的其他地方創建記錄時,唯一鍵的可用代碼/序列池。 現在我運行一個事務,我可以使用切片運算符[:code_count]在code_count == 5000處獲取10億個代碼的可用池中的5000個代碼。批量創建Django具有獨特的序列或每個記錄的值?
此工作正常,但對於每個插入,當我使用代碼時,我必須運行每個代碼並手動將其插入到記錄中。
有沒有更好的方法?
示例代碼(省略類似於所有new_items其他屬性爲每個NEW_ITEM):
code_count=5000
pool_cds = CodePool.objects.filter(free_indicator=True)[:code_count]
for pool_cd in pool_cds:
new_item = Item.objects.create(
pool_cd=pool_cd.unique_code,
)
new_item.save()
cursor = connection.cursor()
update_sql = 'update CodePool set free_ind=%s where pool_cd.id in %s'
instance_param =()
#Create ridiculously long list of params (5000 items)
for pool_cd in pool_cds:
instance_param = instance_param + (pool_cd.id,)
params = [False, instance_param]
rows = cursor.execute(update_sql, params)