django-pyodbc bulk_create坏了

时间:2016-12-07 19:30:30

标签: django bulkinsert django-pyodbc

使用| ?- list_items(X). % file: C:/GNU-Prolog/file.pl parent(a, b). parent(c, d). parent(f, g). X = parent/2 ? ; % file: C:/GNU-Prolog/file.pl list_items(A) :- current_predicate(A), listing(A). X = list_items/1 ? ; no 后端调用bulk_create()时,将为批处理中的每个对象运行insert语句。行为应该是每批运行一个insert语句。

这是一个错误,还是有办法改变这种行为?

版本:

  • django == 1.7
  • pyodbc == 3.0.10
  • django-pyodbc == 1.0.1
  • FreeTDS v1.00.21
  • unixODBC v2.3.4

1 个答案:

答案 0 :(得分:1)

我打赌您使用的django-pyodbc版本不支持批量插入。我建议使用django-pyodbc-azure,您可以安装:

pip install django-pyodbc-azure<1.8

django-pyodbc-azure将其版本号与Django匹配,因此您需要1.7分支中的最新/最佳版本(因此,&lt; 1.8)。

它应该支持bulk_insert()

https://github.com/michiya/django-pyodbc-azure/blob/adc5d88a9928cecc0e9d33aacca301e0084ff824/sql_server/pyodbc/features.py#L15

我还建议升级到Django 1.8(长期支持)或1.10(当前版本),因为不再为1.7发布安全补丁和错误修复。祝你好运!