Aqui estão três maneiras de retornar o agrupamento de uma coluna no MariaDB.
O SHOW COLUMNS
Declaração
O
SHOW COLUMNS
instrução tem um opcional FULL
palavra-chave, que, quando usada, produzirá agrupamento de colunas e comentários, bem como os privilégios que você tem para cada coluna. Aqui está um exemplo de execução desta instrução em uma tabela chamada
Events
:SHOW FULL COLUMNS FROM Events;
Exemplo de resultado:
+-----------+--------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+ | 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 | | +-----------+--------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+
O information_schema.columns
Tabela
Outra opção é consultar o
information_schema.columns
tabela. Nesse caso, podemos escolher apenas as colunas que nos interessam:SELECT
column_name,
character_set_name,
collation_name
FROM information_schema.columns
WHERE table_name = 'Events'
AND column_name = 'EventName';
Exemplo de resultado:
+-------------+--------------------+-------------------+ | column_name | character_set_name | collation_name | +-------------+--------------------+-------------------+ | EventName | latin5 | latin5_turkish_ci | +-------------+--------------------+-------------------+
O SHOW CREATE TABLE
Declaração
Outra opção é usar
SHOW CREATE TABLE
, que retorna o CREATE TABLE
declaração de nossa tabela. No entanto, as informações do conjunto de caracteres e da ordenação de uma coluna só serão retornadas se forem diferentes da ordenação padrão da tabela.
Aqui está um exemplo de execução desta instrução em uma tabela chamada
Pets
, onde as colunas não diferem do padrão da tabela: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 | +-------+-------------------------------+
Neste exemplo, as informações de agrupamento não diferem e, portanto, nenhuma informação de agrupamento foi retornada para nenhuma coluna.
Vamos alterar o agrupamento no
PetName
coluna:ALTER TABLE Pets
MODIFY PetName VARCHAR(255)
CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL;
E execute
SHOW CREATE TABLE
novamente: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 | +-------+-------------------------------+
Desta vez, podemos ver o novo conjunto de caracteres e configurações de agrupamento em relação ao
PetName
coluna.