Risposte:
SHOW TABLE STATUS
mostra le informazioni su una tabella, comprese le regole di confronto.
Per esempio SHOW TABLE STATUS where name like 'TABLE_NAME'
La risposta precedente è ottima, ma in realtà non fornisce un esempio che eviti all'utente di dover cercare la sintassi:
show table status like 'test';
Dov'è test
il nome della tabella.
(Corretto come da commenti di seguito.)
Puoi anche eseguire query INFORMATION_SCHEMA.TABLES
e ottenere le regole di confronto per una tabella specifica:
SELECT TABLE_SCHEMA
, TABLE_NAME
, TABLE_COLLATION
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 't_name';
ciò fornisce un output molto più leggibile rispetto a SHOW TABLE STATUS
quello che contiene molte informazioni irrilevanti.
Si noti che le regole di confronto possono essere applicate anche alle colonne (che potrebbero avere regole di confronto diverse rispetto alla tabella stessa). Per recuperare le regole di confronto delle colonne per una determinata tabella, puoi eseguire una query INFORMATION_SCHEMA.COLUMNS
:
SELECT TABLE_SCHEMA
, TABLE_NAME
, COLUMN_NAME
, COLLATION_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 't_name';
Usa questa query:
SHOW CREATE TABLE tablename
Otterrai tutte le informazioni relative alla tabella.
...) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=latin1
La mia ipotesi è che potrebbe non mostrare le regole di confronto se è impostato sul valore predefinito per il database nelle versioni successive di mysql / mariadb.
utf8
, ma regole di confronto diverse utf8_general_ci
rispetto a utf8_unicode_ci
. Ciò può causare messaggi di errore come HY000, 1267, Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation '='
... che è il messaggio che mi ha portato a questa pagina.
Questo comando descrive
mysql> use <database name>
mysql> show table status like '<table name>';
+------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+-------------+---------------------+------------+--------------------+----------+----------------+---------+
| Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment |
+------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+-------------+---------------------+------------+--------------------+----------+----------------+---------+
| test | InnoDB | 11 | Dynamic | 52 | 315 | 16384 | 0 | 0 | 0 | 59 | NULL | 2020-04-16 23:00:00 | NULL | utf8mb4_unicode_ci | NULL | | |
+------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+-------------+---------------------+------------+--------------------+----------+----------------+---------+
1 row in set (0.01 sec)