Wie kann ich sehen, welche Sortierung eine Tabelle hat? IE möchte ich sehen:
+-----------------------------+
| table | collation |
|-----------------------------|
| t_name | latin_general_ci |
+-----------------------------+
SHOW TABLE STATUS
Zeigt Informationen zu einer Tabelle an, einschließlich der Sortierung.
Beispielsweise SHOW TABLE STATUS where name like 'TABLE_NAME'
Die obige Antwort ist großartig, bietet jedoch kein Beispiel, das den Benutzer davon abhält, die Syntax nachzuschlagen:
show table status like 'test';
Wo test
ist der Tabellenname?
(Korrigiert gemäß den Kommentaren unten.)
Sie können auch INFORMATION_SCHEMA.TABLES
die Sortierung für eine bestimmte Tabelle abfragen und abrufen:
SELECT TABLE_SCHEMA
, TABLE_NAME
, TABLE_COLLATION
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 't_name';
Das ergibt eine viel besser lesbare Ausgabe, im Gegensatz dazu SHOW TABLE STATUS
enthält es viele irrelevante Informationen.
Beachten Sie, dass die Sortierung auch auf Spalten angewendet werden kann (die möglicherweise eine andere Sortierung als die Tabelle selbst haben). Um die Sortierung der Spalten für eine bestimmte Tabelle abzurufen, können Sie Folgendes abfragen INFORMATION_SCHEMA.COLUMNS
:
SELECT TABLE_SCHEMA
, TABLE_NAME
, COLUMN_NAME
, COLLATION_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 't_name';
Verwenden Sie diese Abfrage:
Sie erhalten alle Informationen zur Tabelle.
quelle
...) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=latin1
Ich vermute, dass die Sortierung möglicherweise nicht angezeigt wird, wenn sie in späteren Versionen von mysql / mariadb auf den Standardwert für die Datenbank festgelegt ist.utf8
, aber verschiedene Sortierungenutf8_general_ci
vsutf8_unicode_ci
. Dies kann zu Fehlermeldungen wieHY000, 1267, Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation '='
... führen. Dies ist die Meldung, die mich auf diese Seite gebracht hat.Dieser Befehl beschreibt
quelle