1
如何使用SQLAlchemy的ORM层生成此查询?SQLAlchemy插入修改后的选择
insert into foo (a,b)
select ‘new’ as a, b
from foo
where a = ‘old’;
假设我已经将foo映射到一个类。
我见过Insert.from_select,但我不知道如何修改其中一个字段,例如我在文本查询中所做的操作。
如何使用SQLAlchemy的ORM层生成此查询?SQLAlchemy插入修改后的选择
insert into foo (a,b)
select ‘new’ as a, b
from foo
where a = ‘old’;
假设我已经将foo映射到一个类。
我见过Insert.from_select,但我不知道如何修改其中一个字段,例如我在文本查询中所做的操作。
的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"
希望有所帮助。
它被认为是“新”,而不是“新”。 –
@NickRetallack我的不好,看到更新,谢谢。 – alecxe
呃,''新'as',但是我看到现在这是怎么回事。除了它是坏的,因为''new''应该被转义,而不是手动引用。 –