Python 2.7 (Ubuntu 14.04、unixODBC、FreeTDS) 用に django-pyodbc をインストールしました。テストとして作成した SQL Server データベースを更新しようとしています。
どの行にも影響を与えない 1 つの特定の UPDATE ステートメントを除いて、すべてが正常に機能します。isql を介して実行された同じクエリは、258 行に影響します (Windows からクエリを実行した場合と同じ結果)。ところで、単純な UPDATE ステートメントが機能します (例: UPDATE mytable SET x=1)。問題のクエリは 2 つの JOINS に基づいています (1 つは 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
そのようなことがどのように可能か知っている人はいますか?よろしく、 パトリック
編集:私のデータベース設定には、すでに自動コミットパラメーターが含まれています。とにかく、ここにあります:
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,
}
}