Aquí hay tres formas de devolver la intercalación de una columna en MariaDB.
El SHOW COLUMNS
Declaración
El SHOW COLUMNS
declaración tiene un FULL
opcional palabra clave, que, cuando se usa, generará una colación de columnas y comentarios, así como los privilegios que tiene para cada columna.
Aquí hay un ejemplo de cómo ejecutar esta declaración en una tabla llamada Events
:
SHOW FULL COLUMNS FROM Events;
Resultado de ejemplo:
+-----------+--------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+ | 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 | | +-----------+--------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+
El information_schema.columns
Mesa
Otra opción es consultar el information_schema.columns
mesa. En este caso, podemos elegir solo las columnas que nos interesan:
SELECT
column_name,
character_set_name,
collation_name
FROM information_schema.columns
WHERE table_name = 'Events'
AND column_name = 'EventName';
Resultado de ejemplo:
+-------------+--------------------+-------------------+ | column_name | character_set_name | collation_name | +-------------+--------------------+-------------------+ | EventName | latin5 | latin5_turkish_ci | +-------------+--------------------+-------------------+
El SHOW CREATE TABLE
Declaración
Otra opción es usar SHOW CREATE TABLE
, que devuelve el CREATE TABLE
declaración de nuestra mesa.
Sin embargo, el conjunto de caracteres y la información de intercalación de una columna solo se devuelven si difieren de la intercalación predeterminada de la tabla.
Aquí hay un ejemplo de cómo ejecutar esta declaración en una tabla llamada Pets
, donde las columnas no difieren de las predeterminadas de la tabla:
SHOW CREATE TABLE Pets;
Resultado:
+-------+------------------------------+ | 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 | +-------+-------------------------------+
En este ejemplo, la información de intercalación no difieren, por lo que no se devolvió información de intercalación para ninguna columna.
Cambiemos la intercalación en el PetName
columna:
ALTER TABLE Pets
MODIFY PetName VARCHAR(255)
CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL;
Y ejecuta SHOW CREATE TABLE
de nuevo:
SHOW CREATE TABLE Pets;
Resultado:
+-------+------------------------------+ | 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 | +-------+-------------------------------+
Esta vez podemos ver el nuevo conjunto de caracteres y la configuración de intercalación en PetName
columna.