我正在使用pyodbc在.mbd(访问)文件中对大型数据库进行数据挖掘。
我想创建一个新表,以从几个现有表中获取相关信息(然后将其提供给工具)。
我想我知道我需要传输数据的所有知识,并且我知道如何创建具有列名称和数据类型的表,但是 我在获取现有现有各列的数据类型(INTEGER,VARCHAR等)时遇到了麻烦桌子。 我需要这些类型来兼容地创建新列。
我在互联网(例如this和this)上发现的内容使我陷入无效命令的麻烦,所以我认为这是特定于平台的问题。再说一次,我对数据库相当满意。
有人知道如何获取这些字段的类型吗?
这些文章对您没有帮助的原因是,它们是针对SQL Server的。SQL Server具有可以查询以获取列数据的系统表,而MS Access没有。MS Access仅允许您查询对象名称。
但是,ODBC确实支持通过ODBC.SQLColumns函数通过其连接获取模式。
根据此答案, PyODBC通过游标方法公开此内容。
# columns in table x for row in cursor.columns(table='x'): print row.column_name
正如Mark在评论中指出的那样,您可能还需要row.data_type。他提供的链接包括其提供的所有列