如何使用SQLAlchemy的ORM层生成此查询?
insert into foo (a,b)
select ‘new’ as a, b
from foo
where a = ‘old’;
假设我已经将foo映射到一个类。
我见过Insert.from_select,但我不确定如何修改其中一个字段,就像我在文本查询中所做的那样。
答案 0 :(得分:0)
select()
,where()
和insert().from_select()
的组合可以完成这项工作:
>>> from sqlalchemy.sql import table, column, select
>>> foo = table('foo', column('a'), column('b'))
>>> print(foo.insert().from_select(['a', 'b'],
select(['"new" as a', 'b']).select_from(foo).where('a = "old"')))
INSERT INTO foo (a, b) SELECT "new" as a, b
FROM foo
WHERE a = "old"
希望有所帮助。