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要做到這一點,我結束了這個錯誤如何在SQLAlchemy ORM中表示多表更新(UPDATE FROM)?
InvalidRequestError: Can't call Query.update() or Query.delete() when join(), outerjoin(), select_from(), or from_self() has been called
我想使用ORM,從而使會話將更新命令完成之前的變化進行更新。
你能否也請包括你正在嘗試使用的實際查詢?你的例子也是不完整的,因爲你不能在這些表中使用ORM,因爲它們缺少主鍵,除非你在表參數中傳遞* name *作爲候選鍵。 –
我已經將大得多的表格煮到了證明問題所需的最低限度。 – boatcoder