所以我从install
表中得到了一些结果,如下所示:
install = metadata.tables['install']
results = session.query(install) #<sqlalchemy.orm.query.Query object>
我想将这些相同的结果插入到install_archive
表中。
我不完全确定如何做到这一点,因为我不想通过定义install-archive
对象然后将结果解析为该对象来复制模式。我相信我没有使用ORM,因为我只是反映(这是正确的术语吗?)表并查询它们。
我能看到的所有教程都使用ORM。
在psudocode中,缓慢的做法是:
for id in result.all():
install_archive.insert(install(id))
提前致谢!
答案 0 :(得分:5)
install_archive \
.insert() \
.from_select(names=['col1', 'col2'], # array of column names that your query returns
select=session.query(install)) # your query or other select() object
这导致(PostgreSQL方言)
INSERT INTO install_archive (col1, col2)
SELECT install.col1, install.col2
FROM install;
答案 1 :(得分:0)
您可以执行以下操作(更改SELECT
以满足您的需求)。只需确保两个表具有相同的结构。
INSERT INTO `table1` (SELECT * FROM `table2`);