我们可以更新1个查询两个表的PostgreSQL
问题描述:
我使用的Postgres作为我的数据库,并进行更新基于ACCOUNTID I 2个表我们可以更新1个查询两个表的PostgreSQL
accounts
id | name | status
accountOwner
account_id | user_id
我已经user_id说明(accountOwner表)和状态(账表)有。是否有可能在1个查询中更新这两个表?我尝试以下
UPDATE accounts,accountOwner SET accounts.status='active', accountOwner.user_id=3 WHERE accounts.id=accountOwner.account_id AND accountOwner.account_id = 1;
答
不,你不能更新一次两个表。 The documentation说:
更新 - 的表
但是更新行,你可以使用一个FROM子句,例如:
UPDATE accounts SET status = 'active'
FROM accountOwners
WHERE accounts.id = accountOwners.account_id
AND accountOwners.account_id = 1;
您的解决方案是正确的一个,但是一个'UPDATE'语句*可以*更新两个表:'WITH SUB AS(UPDATE table1 ... RETURNING ...)UPDATE table2 ...'。 –