我正在使用 pypyodbc 模块创建一个数据库并在其中添加一个表。
我使用的代码如下:
import pypyodbc
pypyodbc.win_create_mdb('D:\\test.mdb')
connection_string = 'Driver={Microsoft Access Driver (*.mdb)};DBQ=D:\\test.mdb'
connection = pypyodbc.connect(connection_string)
SQL = "CREATE TABLE [test] ([FID] INT,[AREA] FLOAT,[CODE] VARCHAR(10),[X_CO] DECIMAL(10,3));"
connection.cursor().execute(SQL)
connection.commit()
connection.close()
上面的代码创建了数据库,但是在创建表时会产生错误。错误如下:
ProgrammingError: (u'42000', u'[42000] [Microsoft] [ODBC Microsoft Access Driver] 定义字段中的语法错误。
通过在网上搜索,我发现问题出在最后一个字段的 DECIMAL 类型上,当我从查询中删除它时,它会创建表。
我还尝试更改 Access 中的一个选项以使数据库与 ANSI 92 兼容,当我这样做时,可以从 Access 内部创建表。
因为这个过程必须在数百个数据库中完成,所以我想在 python 循环中执行此操作,但要做到这一点,必须从上面的代码中创建数据库和表。
我在语法中遗漏了什么吗?有谁知道这是否是模块的问题?