Jak mogę sprawdzić, jakie sortowanie ma tabela? IE chcę zobaczyć:
+-----------------------------+
| table | collation |
|-----------------------------|
| t_name | latin_general_ci |
+-----------------------------+
SHOW TABLE STATUS
pokazuje informacje o tabeli, w tym sortowanie.
Na przykład SHOW TABLE STATUS where name like 'TABLE_NAME'
Powyższa odpowiedź jest świetna, ale w rzeczywistości nie dostarcza przykładu, który oszczędza użytkownikowi konieczności sprawdzania składni:
show table status like 'test';
Gdzie test
jest nazwa tabeli.
(Poprawione zgodnie z komentarzami poniżej).
Możesz również wykonać zapytanie INFORMATION_SCHEMA.TABLES
i pobrać sortowanie dla określonej tabeli:
SELECT TABLE_SCHEMA
, TABLE_NAME
, TABLE_COLLATION
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 't_name';
to daje dużo bardziej czytelny wynik w przeciwieństwie do SHOW TABLE STATUS
tego, który zawiera wiele nieistotnych informacji.
Zwróć uwagę, że sortowanie można również zastosować do kolumn (które mogą mieć inne sortowanie niż sama tabela). Aby pobrać sortowanie kolumn dla określonej tabeli, możesz zapytać INFORMATION_SCHEMA.COLUMNS
:
SELECT TABLE_SCHEMA
, TABLE_NAME
, COLUMN_NAME
, COLLATION_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 't_name';
Użyj tego zapytania:
Otrzymasz wszystkie informacje związane z tabelą.
źródło
...) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=latin1
Domyślam się, że może nie wyświetlać sortowania, jeśli jest ustawione na domyślne dla bazy danych w późniejszych wersjach mysql / mariadb.utf8
, ale różne sortowania wutf8_general_ci
porównaniu zutf8_unicode_ci
. Może to powodować komunikaty o błędach, takie jakHY000, 1267, Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation '='
... która jest wiadomością, która doprowadziła mnie do tej strony.To polecenie opisuje
źródło