我为 Python 2.7(Ubuntu 14.04、unixODBC、FreeTDS)安装了 django-pyodbc,并且我正在尝试更新我作为测试创建的 SQL Server 数据库。
除了一个不影响任何行的特定 UPDATE 语句之外,一切都运行良好。通过 isql 执行的相同查询会影响 258 行(与我从 Windows 运行查询的结果相同)。顺便说一句,一个简单的 UPDATE 语句可以工作(例如:UPDATE mytable SET x=1)。有问题的查询基于 2 个 JOIN(一个是 LEFT JOIN)。这里是:
UPDATE E
SET in_dico = 0
FROM entites_entite E
INNER JOIN entites_entitetype T
ON E.entite_type_id = T.id
LEFT JOIN entites_singleton S
ON LOWER(E.entite_name) = LOWER(S.entite_name)
WHERE E.entite_name NOT LIKE '% %'
AND T.exclude_singleton = 1
AND S.entite_name IS NULL
有谁知道这样的事情怎么可能?问候,帕特里克
编辑:我的 DATABASE 设置已经包含 autocommit 参数。无论如何,这里是:
DATABASES = {
'default': {
'ENGINE': "django_pyodbc",
'HOST': "myservername,1433",
'USER': "myname",
'PASSWORD': "mypassword",
'NAME': "mydbname",
'OPTIONS': {
'host_is_server': True,
'autocommit': True,
'driver': "FreeTDS"
},
'COMMAND_TIMEOUT': 7200,
}
}