当我下载这个example database, AdventureWorksLT2012_Data,并尝试访问sql alchemy中的表名时,通过
from sqlalchemy import create_engine
engine = create_engine("mssql+pyodbc://sa:PASSWORD_HERE@localhost:1433/AdventureWorksLT?driver=FreeTDS")
engine.table_names()
我得到['BuildVersion', 'ErrorLog']
。但是,这是数据库中缺少的表。在
例如,执行此查询将给出预期的表名。。。在
^{pr2}$我明白了
['BuildVersion', 'Address', 'Customer', 'CustomerAddress', 'Product', 'ProductCategory', 'ProductDescription', 'ProductModel', 'ProductModelProductDescription', 'SalesOrderDetail', 'SalesOrderHeader', 'ErrorLog']
这是一个错误,还是我忽略了什么?如果我创建了一个新的数据库,并且表的名称与上面相同,那么engine.table_names()
就可以正常工作了。在
查看对应的database creation script,从
engine.table_names()
获得的两个表是在[dbo]
模式中创建的。其他的在[SalesLT]
模式中创建。在因此,
engine.table_names()
似乎只列出了调用时有效的默认模式的表,在本例中正好是[dbo]
。在相关问题 更多 >
编程相关推荐