2009-06-11 2 views
15
내가 열 정렬 및 시스템 데이터베이스 INFORMATION_SCHEMA의 문자 집합을 변경하려면

의 문자 세트 ...MySQL의 변경 열 정렬 및 정보 스키마

사람이이 작업을 수행하는 방법에 대한 입력을 줄 수 있습니까?

ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name [COLLATE collation_name]; 

답변

10

지금까지 내가 아는 한, 당신은에 ALTER TABLE 명령을 실행할 수 없습니다 : 거기에 내가 기존 테이블 사용의 모든 열에 대한 문자 집합 및 데이터 정렬을 변경하려면이

19

에 필요한 특수의 권한인가 information_schema의 테이블. 대신에 character_set_* 개 변수를 살펴보고 싶을 것입니다.

show variables like "character_set_%"; 

같은 information_schema 테이블로 MySQL의 메타 데이터를 함께 할 수있다 변수가의 character_set_system 변수는 다음과 show variables 명령으로 MySQL 서버에 어떤 값에 당신은 변수가 설정되는 볼 수 있습니다. 내 생각에 my.cnf을 설정하는 것이 가장 좋습니다.

이 페이지에 대한 자세한 내용 : UTF-8 for Metadata. 일반 테이블의

, 당신은 ALTER TABLE 명령을 사용하여 테이블의 문자 집합을 변경

alter table some_table convert to character set utf8; 

이 작업을 수행하려면 "변경"권한이 필요합니다.

show privileges 명령으로 MySQL 서버가 지원하는 권한을 볼 수 있으며 show grants 명령을 사용하여 현재 사용자에게 부여 된 권한을 볼 수 있습니다.

+0

무엇의 권한 난 시스템 데이터베이스를 –

+0

당신이 "변경"권한이 필요합니다 @MySQLDBA, 기독교 대답 –

+1

는 당신이'ALTER' 명령 >은 ALTER를 사용하는 경우를 실행하기 전에이 경고를 고려하십시오 참조 어떤 생각을 변경해야합니까 한 문자 집합에서 다른 문자 집합으로 열을 변환하는 TABLE> > MySQL은 데이터 값을 매핑하려고하지만 문자 집합이 호환되지 않으면 데이터가 손실 될 수 있습니다. [MySQL 레퍼런스 매뉴얼] (http://dev.mysql.com/doc/refman/5.0/en/charset-column.html) –

2
alter table some_table convert to character set utf8; 

내가 나를 위해 말할 수있는만큼 훌륭했던 멋진, 지금 나는 그 테이블에서 중국어를 사용할 수있다!! 그리고 내 사이트 전체에서 모든 utf8_encode() utf8_decode()를 제거 할 수 있습니다!