我正试图将子查询中的数据从postgres(from_engine)复制到sqlite数据库。我可以通过使用以下命令复制表来实现此目的:
smeta = MetaData(bind=from_engine)
table = Table(table_name, smeta, autoload=True)
table.metadata.create_all(to_engine)
但是,我不知道如何实现子查询语句的相同功能。
-桑德普
编辑: 继续回答。创建表后,我要按如下方式创建子查询stmt:
table = Table("newtable", dest_metadata, *columns)
stmt = dest_session.query(table).subquery();
然而,最后一个stmt以错误结束 cursor.execute(语句、参数) sqlalchemy.exc.ProgrammingError:(ProgrammingError)关系“newtable”不存在 第3行:来自newtable)作为anon_1
至少在某些情况下是这样的:
使用查询对象的
column_descriptions
获取有关结果集中列的一些信息。有了这些信息,您可以构建架构,以便在另一个数据库中创建新表。
在源数据库中运行查询并将结果插入到新表中。
首先为示例设置:
有趣的是:
应该有更有效的方法来完成最后一个循环。但批量插入是另一个话题。
您还可以查看pandas数据帧。例如,方法将使用
pandas.read_sql(query, source.connection)
和df.to_sql(table_name, con=destination.connection)
。相关问题 更多 >
编程相关推荐