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.