Exemplos de Atribuições de Conjuntos de Caracteres e Collation


Os seguintes exemplos mostram como o MariaDB determina valores de conjunto de caracteres e collations padrões.

Exemplo 1: Definição de Tabela + Coluna

CREATE TABLE t1
(
 c1 CHAR(10) CHARACTER SET latin1 COLLATE latin1_german1_ci
) DEFAULT CHARACTER SET latin2 COLLATE latin2_bin;

Aqui você tem uma coluna com um conjunto de caracteres latin1 e um collation latin1_german1_ci. A definição é explicita, assim ele é direto. Note que não há problemas em armazenar uma coluna latin1 em uma tabela latin2.

Example 2: Definição de Tabela + Coluna

CREATE TABLE t1
(
 c1 CHAR(10) CHARACTER SET latin1
) DEFAULT CHARACTER SET latin1 COLLATE latin1_danish_ci;

Desta vez temos uma coluna com um conjunto de caracteres latin1 e uma collation padrão. Agora, embora possa parecer natural, a collation padrão é tomada do nível de tabela. Como a collation padrão para latin1 é sempre latin1_swedish_ci, a coluna c1 terá uma collation latin1_swedish_ci (e não latin1_danish_ci).

Exemplo 3: Definição de Tabela + Coluna

CREATE TABLE t1
(
 c1 CHAR(10)
) DEFAULT CHARACTER SET latin1 COLLATE latin1_danish_ci;

Temos uma coluna com um conjunto de caracteres padrão e uma collation padrão. Nesta circunstância, o MariaDB olha para o nível de tabela para determinar o conjunto de caracteres e collation de coluna. Assim o conjunto de caracteres para colune c1 é latin1 e sua collation é latin1_danish_ci.

Exemplo 4: Definição de Banco de Dados + Tabela + Coluna

CREATE DATABASE d1 DEFAULT CHARACTER SET latin2 COLLATE latin2_czech_ci;
USE d1;
CREATE TABLE t1
(
 c1 CHAR(10)
);

Criamos uma coluna sem especificar seu conjunto de caracteres e collation. Também não especificamos um conjunto de caracteres e uma collation na nível de tabela. Nestas circubntâncias, o MariaDB olha para o nível de banco de dados para a determinação. (A configuração do banco de dados se torna a configuração da tabela e então a configuração da coluna). Assim o conjunto de caracteres para coluna c1 é latin2 e sua collation é latin2_czech_ci.

Retornar