最近才开始使用python,我喜欢它!但是,我坚持使用SqlAlchemy.
我正在尝试编写一个脚本来读取MS SQL数据库,查询表(所有字段,只对某些字段进行过滤),并将结果写入本地SQLite数据库.
(目标是编写数据适配器:在将结果导出到另一个数据库之前,在SQLite数据库上执行一些查询.也可以写入目标数据库中的临时表.)
我可以建立连接并获得查询结果 – 我可以打印它们,所以我知道该部分有效.但是,如何根据源SQL Server的查询结果结构创建新表?
这有效:
import sqlalchemy
esd = sqlalchemy.create_engine( 'mssql+pyodbc://username:passwordSservername/dbname' )
for row in esd.execute( 'select * from ticket_actions where log_dt > \'2012-09-01\''):
print( row.eFolderID )
这也有效:
import pyodbc
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=servername;DATABASE=dbname;UID=username;PWD=password')
cursor = cnxn.cursor()
for row in cursor.execute( 'select * from ticket_actions where log_dt > \'2012-09-01\''):
print( row.eFolderID )
有关如何创建与查询结构相同的新表的任何想法?
谢谢!
解决方法:
见Creating and Dropping Database Tables:
Creating … individual tables can be done via the
create()
… method ofTable
.
有关阅读源结构的信息,请参阅Reflecting Database Objects:
A
Table
object can be instructed to load information about itself from the corresponding database schema object already existing within the database.
[…]
The reflection system can also reflect views.