如何解决被 Python 锁定的 MS Access 数据库
我正在使用 Python 将数据帧写入 MS Access 数据库。它有效,但我似乎无法关闭连接(即数据库被 Python 锁定)。
这是我的代码:
# imports
import urllib
import pyodbc
import pandas as pd
from sqlalchemy import create_engine
# connection
connection_string = (
r'DRIVER={Microsoft Access Driver (*.mdb,*.accdb)};'
r'DBQ=M:\Larry\Access\test2.accdb;'
r'ExtendedAnsisql=1;'
)
connection_uri = f"access+pyodbc:///?odbc_connect={urllib.parse.quote_plus(connection_string)}"
engine = create_engine(connection_uri)
# create dataframe
d = {'name':['daryl','other daryl'],'team':['a','b']}
df = pd.DataFrame(d)
# write to database
df.to_sql('test',engine,if_exists='replace',index=False)
我尝试在创建引擎行之后添加这个:
conn = engine.connect()
在将数据框写入数据库之后:
conn.close()
我没有从这些添加中得到错误,但数据库仍然被锁定。如何关闭连接以解除锁定?
解决方法
由于你是用引擎对象维护一个数据库的连接实例,操作后,考虑Engine.dispose()
释放资源:
...
# write to database
df.to_sql('test',engine,if_exists='replace',index=False)
engine.dispose()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。