2013-05-16 2 views
2

MySQL의 char 열의 실제 크기 제한은 무엇입니까?
영어 문자 5 개, 한자 5 개, 문자 열 5 개가 있고 크기 제한이 5 인 char 열이 있다고 가정합니다. 두 단어를 모두 열에 저장할 수 있습니까? 아니면 한자가 영문자보다 더 많은 공간을 필요로합니까?MySQL의 char 열 크기 제한은 어떻게 계산됩니까?

답변

1

요약하면 CHAR(m)은 열의 문자 인코딩에 필요한 바이트 수에 관계없이 m자를 보유합니다.

따라서, CHAR(5) 열은 영어, 중국어 또는이 둘의 혼합 여부에 관계없이 열의 문자 집합에 5자를 저장할 수 있습니다. 그러나 데이터를 저장하는 데 사용되는 바이트 수는 다를 수 있습니다.

+0

'CHAR (5) CHARACTER SET ascii_general_ci' (기본 MySQL 문자 인코딩)에 대해서도 마찬가지입니까? 나는 그것이라고 생각하지 않을 것이다. –

+0

@StevenMoseley : 열의 문자 집합으로 인코딩 할 수없는 문자를 저장하려는 시도는 ['ER_TRUNCATED_WRONG_VALUE_FOR_FIELD'] (http://dev.mysql.com/doc/en/error-messages-server.html)을 충족시킵니다. #error_er_truncated_wrong_value_for_field). 이는 완전히 다른 문제입니다. 게다가,'ascii_general_ci'는 * collation *이 아닌 * character set *이고 latin1_swedish_ci는 디폴트 collation입니다. – eggyal

관련 문제