我已連接到資料庫并遍歷元資料以獲取表名,每次洗掉表。但是我收到錯誤訊息:
pyodbc.ProgrammingError: ('42S02', "[42S02] [Microsoft][ODBC Microsoft Access Driver] Table 'MSysAccessStorage' does not exist. (-1305) (SQLExecDirectW)")
這是沒有意義的,因為我從資料庫中獲取表名,所以它必須存在。我的連接必須作業以獲取表名和代碼的其他部分,例如插入作業。這是我的代碼:
for row in cursor.tables():
if(str(row.table_name)!="pricesBackup" and str(row.table_name)!="recipesBackup"):
sqlLine="DROP TABLE costingDB1.accdb." row.table_name
print(sqlLine)
cursor.execute(sqlLine)
conn.commit()
這對我來說似乎很奇怪,想知道如何解決這個問題。先感謝您
uj5u.com熱心網友回復:
名稱以“MSys”開頭的表row.table_type == "SYSTEM TABLE"是不能洗掉的內部系統表 ( )。您需要將洗掉限制在row.table_type == "TABLE".
uj5u.com熱心網友回復:
我找到了解決方案:我從表名中洗掉了 MSys 表和 ~TMC 表,所以只是我的。然后我使用這個串列來洗掉表。我認為問題在于回圈中的 2 個 sql 查詢發生沖突。它試圖從 drop table 命令中查找表。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/314250.html
