2011-11-14 2 views
0

사용자 테이블과 급여 테이블이 있습니다. 따라서 사용자에 대한 급여 ID가 ​​생성 될 때마다 급여 테이블 (payroll.payrollID)에서 업데이트됩니다.update table1.col2 = table2.col2 table2.col2의 값이 변경 될 때

이 값을 user.payrollID에 삽입 할 수 있습니까? 나는 이것을 주기적으로 업데이트하기 위해 기존의 java-JDBC 프로그램을 사용하고있다.

UPDATE user 
SET payrollID = (SELECT payrollID 
        FROM payroll 
        WHERE payroll.userID = user.userID) 
WHERE user.payrollID IS NULL 
AND EXISTS(SELECT payrollID 
        FROM payroll 
        WHERE payroll.userID = user.userID) 

참고 : 급여 프로그램에 액세스 할 수 없습니다. 그래서 급여 프로그램에 어떤 프로그램 수준의 변경이 절에서에서 사용되는 테이블 별칭을 사용할 수있는 업데이트 문을 기억이 개 테이블

+0

나는 이것이 당신이 생각하는 것인지 모르겠다. 하지만 트리거는 어떨까요? –

답변

2
UPDATE u 
    Set payrollID = p.payrollID 
FROM User u 
INNER JOIN Payroll p ON p.userID = u.userID 
WHERE u.payrollID IS NULL 

에 삽입 또는 조인 할 수 있도록 기운 다.

마지막으로이 업데이트를 처리 할 트리거를 만드는 것이 좋습니다.

관련 문제