Ecco tre modi per restituire le regole di confronto di una colonna in MariaDB.
Le SHOW COLUMNS
Dichiarazione
Le SHOW COLUMNS
l'istruzione ha un FULL
opzionale parola chiave, che, se utilizzata, genererà le regole di confronto e i commenti delle colonne, nonché i privilegi che hai per ciascuna colonna.
Ecco un esempio di esecuzione di questa istruzione su una tabella chiamata Events
:
SHOW FULL COLUMNS FROM Events;
Esempio di risultato:
+-----------+--------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+ | 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 | | +-----------+--------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+
Il information_schema.columns
Tabella
Un'altra opzione è interrogare information_schema.columns
tavolo. In questo caso, possiamo scegliere solo le colonne che ci interessano:
SELECT
column_name,
character_set_name,
collation_name
FROM information_schema.columns
WHERE table_name = 'Events'
AND column_name = 'EventName';
Esempio di risultato:
+-------------+--------------------+-------------------+ | column_name | character_set_name | collation_name | +-------------+--------------------+-------------------+ | EventName | latin5 | latin5_turkish_ci | +-------------+--------------------+-------------------+
Il SHOW CREATE TABLE
Dichiarazione
Un'altra opzione è usare SHOW CREATE TABLE
, che restituisce il CREATE TABLE
dichiarazione della nostra tavola.
Tuttavia, le informazioni sul set di caratteri e sulle regole di confronto per una colonna vengono restituite solo se differiscono dalle regole di confronto predefinite della tabella.
Ecco un esempio di esecuzione di questa istruzione su una tabella chiamata Pets
, dove le colonne non differiscono dall'impostazione predefinita della tabella:
SHOW CREATE TABLE Pets;
Risultato:
+-------+------------------------------+ | 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 questo esempio, le informazioni sulla raccolta non differiscono e quindi non sono state restituite informazioni di confronto per nessuna colonna.
Cambiamo le regole di confronto su PetName
colonna:
ALTER TABLE Pets
MODIFY PetName VARCHAR(255)
CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL;
Ed esegui SHOW CREATE TABLE
ancora:
SHOW CREATE TABLE Pets;
Risultato:
+-------+------------------------------+ | 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 | +-------+-------------------------------+
Questa volta possiamo vedere il nuovo set di caratteri e le impostazioni di confronto rispetto a PetName
colonna.