2016-10-04 5 views
0

내 데이터베이스로 포스트 그레스를 사용하고 1 개 쿼리에 두 테이블을 업데이트하고이 개 테이블우리는 PostgreSQL을

내가 USER_ID 한
accounts 
id | name | status 


accountOwner 
account_id | user_id 

(accountOwner 테이블)과 상태 (계정 테이블) 계정 아이디의 I를 기반으로 업데이트해야 할 수 있다. 1 개의 쿼리에서 두 테이블을 모두 업데이트 할 수 있습니까? 나는 다음과 같은

UPDATE accounts,accountOwner SET accounts.status='active', accountOwner.user_id=3 WHERE accounts.id=accountOwner.account_id AND accountOwner.account_id = 1; 

답변

1

없음을 시도, 당신 수 없습니다 업데이트를 한 번에 두 개의 테이블. The documentation는 말한다 : -

UPDATE

그러나 테이블의 업데이트 행, 당신은 예를 들어, FROM 절 를 사용할 수 있습니다

UPDATE accounts SET status = 'active' 
    FROM accountOwners 
    WHERE accounts.id = accountOwners.account_id 
    AND accountOwners.account_id = 1; 
+0

귀하의 솔루션이 맞다 하나이지만 하나의 UPDATE 문 *은 두 개의 테이블을 갱신 할 수 있습니다 :'WITH sub AS (UPDATE table1 ... RETURNING ...) UPDATE table2 ...'. –