그래서 모든 varchar(255)로 테이블을 만든 다음 CAST를 사용하여 UNSIGNED로 변경하기로 결정했습니다(모든 값이 양수이므로). 확인해 보니 unsigned 로 변경되어 있었습니다. 그런데 테이블 전체를 다시 확인해 보니 해당 열이 여전히 varchar로 처리되어 있는 것을 발견했습니다.
제가 이해한 바에 따르면 CAST는 특정 코드에서만 작동하며 영구적으로 변경되지는 않습니다. 컬럼 유형을 영구적으로 변경하려면 아래와 같이 ALTER를 사용해야 합니까?
그렇다면 사람들은 왜 ALTER 대신 CAST를 사용하는 걸까요?
CREATE table project.worldcup_players ( MatchID varchar (255), Team_Initials varchar (255), Coach_Name varchar (255), Player_Name varchar (255) ); SELECT * FROM project.worldcup_players; SELECT CAST(MatchID AS UNSIGNED) AS MatchID FROM project.worldcup_players; ALTER TABLE project.worldcup_players CHANGE COLUMN `MatchID` `MatchID` INT NULL DEFAULT NULL ;
P粉0042876652023-09-14 14:35:15
CAST는 쿼리의 표현식 결과만 변경합니다. 데이터 저장 방법을 변경하지 않고 때때로 부호 없는 정수로 변경하려는 경우 CAST를 사용할 수 있습니다.
데이터 저장 방식을 변경하려면 ALTER TABLE을 사용해야 합니다.
MatchID가 특정 일치에 대해서만 숫자로 표시된다고 가정해 보세요. 다른 대회에서는 대회가 알파벳 문자열로 식별됩니다. 이 경우 열은 지정된 테이블의 모든 행에 대해 동일한 데이터 형식으로 저장되어야 하므로 열은 varchar여야 합니다. 테이블을 수정하지 마십시오. 숫자가 아닌 모든 문자열이 0에 해당하는 숫자로 변경됩니다.