MariaDB
 sql >> Database >  >> RDS >> MariaDB

3 modi per ottenere la confronto di una colonna in MariaDB

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.