「私の手に負えない状況」tmのため、MS Access バックエンドで sqlalchemy を使用しています。次のコードに問題があります。
def delete_imports(self, files_imported_uid):
table_name = 'my_table'
delete_raw = self.meta.tables[table_name].delete()
self.engine.execute(delete_raw.where(
self.meta.tables[table_name].c.files_imported_uid == files_imported_uid)
)
「ファイル共有ロック数を超えました」をスローします。大きなテーブルでのエラー。生成されるステートメントは次のとおりです。
DELETE FROM my_table WHERE my_table.files_imported_uid = ?
uid のパラメーターを使用します。その後、ステートメントは pyodbc を介して実行されます。MSDN はこの問題を回避するためのいくつかの提案を提供しましたが、データベースが Novell NetWare サーバー上にある場合は機能しないと通知されました。
私が使用できる既知の回避策はありますか (できれば sqlalchemy レイヤーで)、または一度に上位 9,000 レコードを選択して削除し、終了するまでループする醜いハックを作成する必要がありますか?