Hier sind drei Möglichkeiten, die Sortierung einer Spalte in MariaDB zurückzugeben.
Die SHOW COLUMNS
Erklärung
Die SHOW COLUMNS
-Anweisung hat ein optionales FULL
Schlüsselwort, das bei Verwendung Spaltensortierung und Kommentare sowie die Berechtigungen ausgibt, die Sie für jede Spalte haben.
Hier ist ein Beispiel für die Ausführung dieser Anweisung für eine Tabelle namens Events
:
SHOW FULL COLUMNS FROM Events;
Beispielergebnis:
+-----------+--------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+ | Field | Type | Collation | Null | Key | Default | Extra | Privileges | Comment | +-----------+--------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+ | EventId | int(11) | NULL | NO | PRI | NULL | auto_increment | select,insert,update,references | | | EventName | varchar(255) | latin5_turkish_ci | YES | | NULL | | select,insert,update,references | | +-----------+--------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+
Die information_schema.columns
Tabelle
Eine weitere Möglichkeit besteht darin, die information_schema.columns
abzufragen Tisch. In diesem Fall können wir nur die Spalten auswählen, die uns interessieren:
SELECT
column_name,
character_set_name,
collation_name
FROM information_schema.columns
WHERE table_name = 'Events'
AND column_name = 'EventName';
Beispielergebnis:
+-------------+--------------------+-------------------+ | column_name | character_set_name | collation_name | +-------------+--------------------+-------------------+ | EventName | latin5 | latin5_turkish_ci | +-------------+--------------------+-------------------+
Die SHOW CREATE TABLE
Erklärung
Eine weitere Option ist die Verwendung von SHOW CREATE TABLE
, die die CREATE TABLE
zurückgibt Aussage unserer Tabelle.
Der Zeichensatz und die Sortierungsinformationen für eine Spalte werden jedoch nur zurückgegeben, wenn sie sich von der Standardsortierung der Tabelle unterscheiden.
Hier ist ein Beispiel für die Ausführung dieser Anweisung für eine Tabelle namens Pets
, wobei sich die Spalten nicht vom Standardwert der Tabelle unterscheiden:
SHOW CREATE TABLE Pets;
Ergebnis:
+-------+------------------------------+ | Table | Create Table | +-------+------------------------------+ | Pets | CREATE TABLE `Pets` ( `PetId` int(11) NOT NULL, `PetTypeId` int(11) NOT NULL, `OwnerId` int(11) NOT NULL, `PetName` varchar(60) NOT NULL, `DOB` date DEFAULT NULL, PRIMARY KEY (`PetId`), KEY `PetTypeId` (`PetTypeId`), KEY `OwnerId` (`OwnerId`), CONSTRAINT `pets_ibfk_1` FOREIGN KEY (`PetTypeId`) REFERENCES `PetTypes` (`PetTypeId`), CONSTRAINT `pets_ibfk_2` FOREIGN KEY (`OwnerId`) REFERENCES `Owners` (`OwnerId`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 | +-------+-------------------------------+
In diesem Beispiel waren die Sortierungsinformationen nicht abweichen, daher wurden für keine Spalten Kollationsinformationen zurückgegeben.
Lassen Sie uns die Sortierung für PetName
ändern Spalte:
ALTER TABLE Pets
MODIFY PetName VARCHAR(255)
CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL;
Und führen Sie SHOW CREATE TABLE
aus nochmal:
SHOW CREATE TABLE Pets;
Ergebnis:
+-------+------------------------------+ | Table | Create Table | +-------+------------------------------+ | Pets | CREATE TABLE `Pets` ( `PetId` int(11) NOT NULL, `PetTypeId` int(11) NOT NULL, `OwnerId` int(11) NOT NULL, `PetName` varchar(255) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL, `DOB` date DEFAULT NULL, PRIMARY KEY (`PetId`), KEY `PetTypeId` (`PetTypeId`), KEY `OwnerId` (`OwnerId`), CONSTRAINT `pets_ibfk_1` FOREIGN KEY (`PetTypeId`) REFERENCES `PetTypes` (`PetTypeId`), CONSTRAINT `pets_ibfk_2` FOREIGN KEY (`OwnerId`) REFERENCES `Owners` (`OwnerId`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 | +-------+-------------------------------+
Dieses Mal können wir den neuen Zeichensatz und die Sortierungseinstellungen für PetName
sehen Spalte.