Como posso ver o agrupamento de uma tabela? IE eu quero ver:
+-----------------------------+
| table | collation |
|-----------------------------|
| t_name | latin_general_ci |
+-----------------------------+
SHOW TABLE STATUS
mostra informações sobre uma tabela, incluindo o agrupamento.
Por exemplo SHOW TABLE STATUS where name like 'TABLE_NAME'
A resposta acima é ótima, mas na verdade não fornece um exemplo que evite que o usuário tenha que procurar a sintaxe:
show table status like 'test';
Onde test
está o nome da tabela.
(Corrigido de acordo com os comentários abaixo.)
Você também pode consultar INFORMATION_SCHEMA.TABLES
e obter o agrupamento para uma tabela específica:
SELECT TABLE_SCHEMA
, TABLE_NAME
, TABLE_COLLATION
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 't_name';
que fornece uma saída muito mais legível em contraste com a SHOW TABLE STATUS
que contém muitas informações irrelevantes.
Observe que o agrupamento também pode ser aplicado a colunas (que podem ter um agrupamento diferente do da própria tabela). Para buscar o agrupamento das colunas para uma tabela específica, você pode consultar INFORMATION_SCHEMA.COLUMNS
:
SELECT TABLE_SCHEMA
, TABLE_NAME
, COLUMN_NAME
, COLLATION_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 't_name';
Use esta consulta:
Você obterá todas as informações relacionadas à tabela.
fonte
...) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=latin1
Meu palpite é que ele pode não mostrar o agrupamento se estiver definido como padrão para o banco de dados em versões posteriores do mysql / mariadb.utf8
, mas diferentes agrupamentosutf8_general_ci
vsutf8_unicode_ci
. Isso pode causar mensagens de erro comoHY000, 1267, Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation '='
... que é a mensagem que me trouxe a esta página.Este comando descreve
fonte