2011-08-04 5 views
1

테이블 A에 CHAR 타입 컬럼이 있습니다. 컬럼의 모든 문자열은 테이블 B의 정수와 일대일로 대응합니다. 테이블 B의 해당 INT와 테이블 A의 CHAR 열에있는 문자열. 새 열을 만들고 관련된 데이터로 채우는 스크립트를 작성할 수 있지만 더 쉬운 방법이 있어야합니다. MySQL 내에서. UPDATE 또는 ALTER TABLE 문을 사용하여이 작업을 수행 할 수 있습니까? 그래서 나중에 당신은 여전히에 열을 변환하는 ALTER 표를해야,MySQL은 두 번째 테이블을 통해 INT로 char 열을 변환합니다.

UPDATE table1 
SET table1.column = table2.column 
WHERE <condition> 

을하지만 열은 여전히 ​​CHAR 컬럼이 될 것입니다 :

답변

2

음, 단순히 int 값을 가진 열을 업데이트 작동 INT.

캐스팅에 문제가 있어서는 안되지만 새 INT 열을 추가하는 것이 좋을 것입니다. 위의 것과 비슷한 업데이트로 채운 다음 이전 열을 제거하십시오. 항상 테이블 크기가 반복되는 ALTER TABLE 잠금이 너무 길다.

+0

감사합니다. 나는 비슷한 솔루션을 알아 냈습니다. 'UPDATE tableA ta set new_column = ( select intIWant from tableB where string = ta.string);' – caltangelo

관련 문제