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''應該被轉義,而不是手動引用。 –