2016-10-10 2 views
0

현재 간단한 스크립트를 사용하여 테이블에 새 레코드를 만듭니다.다른 테이블에서 참조 열 삽입

insert into PRODUCT(name,color) values('product1','red'); 

하지만 테이블 구조를 변경하면 어떻게됩니까? "color"열은 더 이상 varchar가 아닌 참조 ID가 될 것이며 모든 색상은 별도의 테이블에 유지 될 것입니다. 그러면 참조 ID 양식을 색상 표에 삽입해야합니다. 어떻게하면 삽입을 처리하고 업데이트 할 수 있습니까? SQL뿐만 아니라 특정 색상으로 쿼리? 그런 다음 당신은 그냥 아이디의 대응을 채우기 위해 UPDATE를 발행

ALTER TABLE PRODUCT ADD ColorID int 

: SQL 서버의 경우

답변

0

, 당신의 Product 테이블은 인 - 메모리 테이블은 다음과에 새 열을 추가 할 수없는 경우 새 ColorID 열의 색은 Product입니다.

UPDATE P 
SET P.ColorID = C.ID 
FROM PRODUCT P 
    INNER JOIN COLORS C ON P.COLOR = C.ColorName 

그런 다음 당신은 정말, 당신은 이전 COLOR 열을 삭제하고 Color 현재 ColorID 열 이름을 바꿀 수 있습니다하려는 경우.

그러나 사전에 이것을 계획해야합니다 (). 그리고 일반적으로 색상 표는 훨씬 더 의미가 있습니다.

관련 문제