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
.