2012-11-11 2 views
0

필자는 이전 테이블에서 새 테이블로 데이터 행을 전송할 때 다음과 같은 SQL 코드를 사용할 수 있습니다. (MySQL Workbench에서 작업 중)새 테이블의 행을 동적으로 업데이트하여 이전 테이블의 행을 채우는 방법은 무엇입니까?

INSERT INTO us_compensation.RPBAR 
(ORG_SEC_ID , 
FYE, 
TOTAL_SALARY_PAID , 
OTHER_COMP_PAID , 
TOTAL_BONUS_PAID , 
PERFORMANCE_EQUITY_TIME_VESTING_OPTIONS_TIME_VESTING_STOCK, 
TOTAL) 
SELECT DISTINCT 
    ORG_SEC_ID, 
    FYE, 
    TOTAL_SALARY_PAID, 
    OTHER_COMP_PAID, 
    TOTAL_BONUS_PAID, 
    PERFORMANCE_EQUITY + TIME_VESTING_OPTIONS + TIME_VESTING_STOCK, 
    TOTAL_SALARY_PAID + OTHER_COMP_PAID + TOTAL_BONUS_PAID 
     + PERFORMANCE_EQUITY + TIME_VESTING_OPTIONS + TIME_VESTING_STOCK 
FROM 
    equilar.realizablepay 
group by ORG_SEC_ID 
HAVING MAX(FYE); 

내가 도움이 필요한 것은 다음과 같습니다. 이전 테이블의 행은 새 데이터가 들어올 때 자동으로 변경되지만 새 테이블의 행 (RPBAR)은 새 데이터를 반영하지 않습니다. 새로운 테이블은 이전 테이블의 이전 데이터가있는 모든 행을 가지며 이전 테이블에 들어오는 새 데이터를 새 테이블의 맨 아래에 추가합니다.

새 테이블에 행에 이전 데이터를 저장하지 말고 기존 테이블의 새 데이터로 관련 행을 업데이트합니다 (모든 관련 행이 새 데이터로 업데이트 됨).

이전 테이블의 행에 새 데이터를 반영하도록 새 테이블을 만들고 이전 데이터와 새 데이터를 새 테이블로 만들지 못하게하려면 어떻게해야합니까?

답변

0

새 테이블에 trigger을 생성하려고합니다. 이 트리거에서 여러 명령문을 실행하여 조건부로 기존 테이블을 업데이트 할 수 있습니다.

+0

나는보기를 만들기 위해 eggyall의 제안과 함께 작업하고 있습니다. 나는 트리거에 익숙하지 않다. (SQL을 가진 초보자). – user1542006

0

아마도 간단히 VIEW을 원하십니까?

CREATE VIEW us_compensation.RPBAR AS 
    SELECT DISTINCT 
      ORG_SEC_ID, 
      FYE, 
      TOTAL_SALARY_PAID, 
      OTHER_COMP_PAID, 
      TOTAL_BONUS_PAID, 
      PERFORMANCE_EQUITY + TIME_VESTING_OPTIONS + TIME_VESTING_STOCK 
      AS PERFORMANCE_EQUITY_TIME_VESTING_OPTIONS_TIME_VESTING_STOCK, 
      TOTAL_SALARY_PAID + OTHER_COMP_PAID + TOTAL_BONUS_PAID 
      + PERFORMANCE_EQUITY + TIME_VESTING_OPTIONS + TIME_VESTING_STOCK 
      AS TOTAL 
    FROM  equilar.realizablepay 
    GROUP BY ORG_SEC_ID 
    HAVING MAX(FYE) 
; 
+0

감사합니다. 그러나 RPBAR 테이블이 이미 존재하므로 (2 번째 테이블) RPBAR을 만들지 않고 view 문을 어떻게 포함합니까? – user1542006

+0

@ user1542006 : 먼저 표를 버리십시오. – eggyal

+0

확인. 내가 한 일은 RPBAR1로 RPBAR로 이름이 바뀌었고 실행은 성공적 이었지만 0 행이 영향을 받았습니다. 나는 약 4000 행이있다. 또한 결과보기가 표시되지 않았습니다. – user1542006

관련 문제