테이블의 기본 데이터 정렬을 변경하는 방법은 무엇입니까?
create table check2(f1 varchar(20),f2 varchar(20));
기본 데이터 정렬을 사용하여 테이블을 만듭니다 latin1_general_ci
.
alter table check2 collate latin1_general_cs;
show full columns from check2;
열의 개별 데이터 정렬을 'latin1_general_ci'로 표시합니다.
그러면 alter table 명령의 효과는 무엇입니까?
기존 열을 포함 하여 테이블의 기본 문자 집합 및 데이터 정렬을 변경하려면 ( convert to 절 참조)
alter table <some_table> convert to character set utf8mb4 collate utf8mb4_unicode_ci;
몇 가지 의견을 묻는 메시지 덕분에 답변을 편집했습니다.
utf8을 권장하지 않아야합니다. 그것은 거의 당신이 원하는 것이 아니며, 종종 예기치 않은 혼란을 초래합니다. utf8 문자 세트는 UTF-8과 완전히 호환되지 않습니다. UTF-8을 원한다면 utf8mb4 문자 세트가 필요합니다. – Rich Remer 3 월 28 일 18시 23:41
과
그것은 매우 중요해 보입니다. 댓글을 읽고 @RichRemer 감사합니다. Nikki, 나는 이것이 얼마나 많은 조회를 얻는지를 고려하여 답변에서 편집해야한다고 생각합니다. https://dev.mysql.com/doc/refman/8.0/en/charset-unicode-utf8.html을 참조하십시오. 그리고 MySQL에서 utf8mb4와 utf8 문자 세트의 차이점은 무엇입니까? – Paulpro 3 월 12 일 17:46
MySQL에는 서버, 데이터베이스, 테이블, 열의 4 가지 수준의 데이터 정렬이 있습니다. 서버, 데이터베이스 또는 테이블의 데이터 정렬을 변경하면 각 열의 설정은 변경되지 않지만 기본 데이터 정렬은 변경됩니다.
예를 들어 데이터베이스의 기본 데이터 정렬을 변경하면 해당 데이터베이스에서 생성 한 각 새 테이블이 해당 데이터 정렬을 사용하고 테이블의 기본 데이터 정렬을 변경하면 해당 테이블에서 생성 한 각 열에 해당 데이터 정렬이 적용됩니다.
테이블의 기본 데이터 정렬을 설정합니다. 새 열을 만들면 latin_general_ci와 대조되어야합니다. 개별 열의 데이터 정렬을 지정하고 작동하는지 확인하십시오. MySQL은 이것을 처리하는 방식과 관련하여 실제로 기괴한 행동을합니다.
SCHEMA뿐만 아니라 테이블을 변경해야 할 수도 있습니다.
ALTER SCHEMA `<database name>` DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_unicode_ci (as Rich said - utf8mb4);
(mariaDB 10)
참고 URL : https://stackoverflow.com/questions/742205/how-to-change-the-default-collation-of-a-table
'Programming' 카테고리의 다른 글
한 요소가 다른 요소에 포함되어 있는지 Javascript를 확인하는 방법 (0) | 2020.05.21 |
---|---|
자바에서 소수점 이하 2 자리까지 반올림? (0) | 2020.05.21 |
styles.xml에서 'Theme'기호를 확인할 수 없습니다 (Android Studio) (0) | 2020.05.21 |
활동하지 않는 장소에서 getLayoutInflater ()를 호출 (0) | 2020.05.21 |
HTML은 프로그래밍 언어로 간주됩니까? (0) | 2020.05.21 |