Her er tre måder at returnere sammenstillingen af en kolonne i MariaDB.
SHOW COLUMNS
Erklæring
SHOW COLUMNS
sætningen har en valgfri FULL
søgeord, der, når det bruges, vil udsende kolonnesortering og kommentarer, såvel som de privilegier, du har for hver kolonne.
Her er et eksempel på at køre denne sætning mod en tabel kaldet Events
:
SHOW FULL COLUMNS FROM Events;
Eksempelresultat:
+-----------+--------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+ | 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 | | +-----------+--------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+
information_schema.columns
Tabel
En anden mulighed er at forespørge information_schema.columns
bord. I dette tilfælde kan vi kun vælge de kolonner, vi er interesserede i:
SELECT
column_name,
character_set_name,
collation_name
FROM information_schema.columns
WHERE table_name = 'Events'
AND column_name = 'EventName';
Eksempelresultat:
+-------------+--------------------+-------------------+ | column_name | character_set_name | collation_name | +-------------+--------------------+-------------------+ | EventName | latin5 | latin5_turkish_ci | +-------------+--------------------+-------------------+
SHOW CREATE TABLE
Erklæring
En anden mulighed er at bruge SHOW CREATE TABLE
, som returnerer CREATE TABLE
opgørelse af vores tabel.
Tegnsættet og sorteringsoplysningerne for en kolonne returneres dog kun, hvis de adskiller sig fra tabellens standardsortering.
Her er et eksempel på at køre denne sætning mod en tabel kaldet Pets
, hvor kolonnerne ikke adskiller sig fra tabellens standard:
SHOW CREATE TABLE Pets;
Resultat:
+-------+------------------------------+ | 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 | +-------+-------------------------------+
I dette eksempel gjorde sorteringsoplysningerne ikke afvige, og der blev derfor ikke returneret nogen sorteringsoplysninger for nogen kolonner.
Lad os ændre sorteringen på PetName
kolonne:
ALTER TABLE Pets
MODIFY PetName VARCHAR(255)
CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL;
Og kør SHOW CREATE TABLE
igen:
SHOW CREATE TABLE Pets;
Resultat:
+-------+------------------------------+ | 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 | +-------+-------------------------------+
Denne gang kan vi se det nye tegnsæt og sorteringsindstillinger mod PetName
kolonne.