在SQLAlchemy中,您可以使用insert()
和select()
方法来实现在一个表中插入另一个表的数据。以下是一个示例:
from sqlalchemy import create_engine, Table, Column, Integer, String, MetaData, select, insert
# 创建一个引擎
engine = create_engine('sqlite:///example.db')
# 创建一个元数据对象
metadata = MetaData()
# 定义表1和表2
t1 = Table('t1', metadata,
Column('id', Integer, primary_key=True),
Column('name', String))
t2 = Table('t2', metadata,
Column('id', Integer, primary_key=True),
Column('name', String))
# 创建表
metadata.create_all(engine)
# 插入数据到表2
with engine.begin() as conn:
conn.execute(t2.insert(), [{'id': 1, 'name': 'John'}, {'id': 2, 'name': 'Jane'}])
# 从表2中选择数据并插入到表1
with engine.begin() as conn:
stmt = insert(t1).from_select(('id', 'name'), select([t2.c.id, t2.c.name]))
conn.execute(stmt)
在这个示例中,我们首先创建了两个表t1
和t2
,然后向t2
中插入了一些数据。接下来,我们使用insert()
和select()
方法从t2
中选择数据并插入到t1
中。
这个示例使用了SQLite数据库,但是您可以将其更改为使用其他数据库,例如MySQL、PostgreSQL等。
领取专属 10元无门槛券
手把手带您无忧上云