无法使用pyodbc在Access中创建表

22 投票
2 回答
19013 浏览
提问于 2025-04-17 04:11

我正在尝试用Python和pyodbc在MS Access数据库中创建表格,但当我运行我的代码时,没有创建任何表格,也没有出现错误。我的代码是:

#!/usr/bin/env python
import pyodbc

con = pyodbc.connect(r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=Z:\Data\Instruments\testDB.accdb; Provider=MSDASQL;')
cur = con.cursor()
string = "CREATE TABLE TestTable(symbol varchar(15), leverage double, shares integer, price double)"
cur.execute(string)

这可能出什么问题呢?

2 个回答

3

还有一些解决方案,不需要手动提交数据:

在创建连接实例时,设置 autocommit = True

例如:

con = pyodbc.connect(your_connection_string, autocommit = True)

或者

使用 with 语句,这样在 with 块结束时,连接被删除之前会自动提交所有内容,具体可以参考 Python 数据库连接关闭

例如:

with pyodbc.connect(your_connection_string) as con:

    CREATE_TABLE_CODE_WITHOUT_COMMIT

UNRELATED_CODE
25

你需要提交这个事务:

import pyodbc

con = pyodbc.connect(r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=Z:\Data\Instruments\testDB.accdb; Provider=MSDASQL;')
cur = con.cursor()
string = "CREATE TABLE TestTable(symbol varchar(15), leverage double, shares integer, price double)"
cur.execute(string)
con.commit()

撰写回答