【发布时间】:2019-12-19 22:41:42
【问题描述】:
我有一个简短的 SQL 脚本,它将 SQL 表中的选定列从一个 id (main_id=1) “复制”到同一张表的另外两个 id (main_id=3 和 4)。
还有一些其他的 id 是表的主键的一部分。
该脚本使用 PostgreSQL 数据库可以正常工作。 但是,我想使用 SQLAlchemy ORM 替换它,但我不知道该怎么做。
UPDATE "MyTable" AS T
SET "Varname_1" = Cell."Varname_1",
"Varname_2" = Cell."Varname_2"
FROM "MyTable" AS Cell
WHERE T.id_A = Cell.id_A AND
T.id_B = Cell.id_B AND
Cell.main_id = 1 AND
T.main_id IN (3, 4);
谁能帮我“翻译”这个?
【问题讨论】:
-
为什么不直接执行这个查询呢?
-
首先,如果我可以在 SQLAlchemy 中执行此操作,我将在我的程序中对所有数据库操作使用 SQLAlchemy,而不是混合使用 SQLAlchemy 和原始 SQL。其次,可移植性:(据我所知)上面的脚本不适用于所有 SQL 方言。在使用 Postgres 之前,我使用的是 MS SQL 服务器,为此我不得不使用不同的脚本。
-
我的意思是executing the raw SQL via SQLAlchemy,我认为这个 SQL 在方言之间应该不会有太大差异(对我来说看起来像是有效的 T-SQL),但请看我的回答。
标签: python sqlalchemy