source

MariaDb 10.6의 NVARCHAR 열에 대한 기본 데이터 정렬 변경

lovecheck 2023. 8. 20. 11:55
반응형

MariaDb 10.6의 NVARCHAR 열에 대한 기본 데이터 정렬 변경

MariaDb 10.6.4에서 문제가 발생했지만 10.5.12에서는 발생하지 않았습니다.

데이터베이스(및 실제로 서버)에 대한 기본 문자 집합과 기본 정렬을 utf8mb4 및 utf8mb4_general_ci로 설정했습니다.서버 설정은 10.6.4의 information_schema, performance_schema 및 sys 기본값에 영향을 미치지 않지만(아직 utf8mb3임) 내가 만든 다른 모든 데이터베이스는 utf8mb4를 가집니다.

사용합니다SELECT SCHEMA_NAME, DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME FROM information_schema.SCHEMATA기본 설정을 확인합니다.

default_schemas

다음 Sql을 사용하여 데이터베이스 ETLBox_DataFlow2에 테스트 테이블을 만듭니다.

CREATE TABLE testtable
(
    col1 NVARCHAR(100) NULL,
    col2 VARCHAR(100)  NULL,
    col3 VARCHAR(100) COLLATE 'utf8mb4_general_ci',
    col4 VARCHAR(100) CHARACTER SET 'utf8mb4'
)

각 열이 사용하는 문자 집합과 조합을 확인해보니 NVARCHAR 열에 utf8mb3가 기본 문자 집합으로 남아 있습니다.

SELECT COLUMN_NAME, CHARACTER_SET_NAME, COLLATION_NAME
FROM information_schema.Columns
WHERE TABLE_NAME = 'testtable'

table_columns_collations

이 테이블에서 데이터를 검색하기 위해 C#과 최신 MySql 커넥터 8.0을 사용하기 때문에 매우 유감입니다.그러나 이 커넥터는 이미 MySql/Oracle에서 사용되지 않기 때문에 utf8mb3에서 수집된 데이터에서는 작동하지 않습니다.

저는 MariaDb 10.5.12에서 이 문제가 발생한 적이 없습니다.MariaDb가 utf8의 기본값을 변경한 것은 알고 있지만, 이제 모든 것이 MySql과 일치하도록 utf8mb4로 정렬될 것이라고 생각했습니다.@@OLD_MODE를 가지고 놀려고 했지만, 테이블을 만들 때 여기서 어떤 차이도 보이지 않았습니다.

이 행동을 바꿀 방법이 있습니까?또한 NVARCHAR 열은 기본적으로 utf8mb4로 수집되기를 원합니다(또는 실제로는 utf8mb3 이외의 다른 조합도 가능합니다).

답장 기다리겠습니다!

언급URL : https://stackoverflow.com/questions/69303375/change-default-collation-for-nvarchar-columns-in-mariadb-10-6

반응형