【发布时间】:2018-11-21 12:51:09
【问题描述】:
CREATE TABLE foo (
name text NOT NULL,
deleted_at timestamp without time zone
);
CREATE TABLE bar (
name text NOT NULL,
status_id int
);
UPDATE bar set status_id=1
FROM foo
WHERE status_id <> 1 AND foo.name = bar.name AND foo.deleted_at is null;
当我尝试使用 ORM 执行此操作时,我最终会遇到此错误
InvalidRequestError: Can't call Query.update() or Query.delete() when join(), outerjoin(), select_from(), or from_self() has been called
我想使用 ORM,以便在更新命令完成之前使用更改更新会话。
【问题讨论】:
-
能否请您也包括您尝试使用的实际查询?您的示例也不完整,因为您无法将 ORM 与这些表一起使用,因为它们缺少主键,除非您将 name 作为表 args 中的候选键传递。
-
我已将大得多的表简化为演示问题所需的最小值。
标签: python sqlalchemy