Bir tablonun hangi harmanlamaya sahip olduğunu nasıl görebilirim? IE görmek istiyorum:
+-----------------------------+
| table | collation |
|-----------------------------|
| t_name | latin_general_ci |
+-----------------------------+
Yanıtlar:
SHOW TABLE STATUS
harmanlama dahil olmak üzere bir tablo hakkındaki bilgileri gösterir.
Örneğin SHOW TABLE STATUS where name like 'TABLE_NAME'
Yukarıdaki cevap harika, ancak aslında kullanıcıyı sözdizimini aramaktan kurtaran bir örnek sağlamıyor:
show table status like 'test';
test
Tablo adı nerede .
(Aşağıdaki yorumlara göre düzeltilmiştir.)
Ayrıca INFORMATION_SCHEMA.TABLES
, belirli bir tablo için sorgulama yapabilir ve harmanlamayı alabilirsiniz:
SELECT TABLE_SCHEMA
, TABLE_NAME
, TABLE_COLLATION
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 't_name';
Bu, pek SHOW TABLE STATUS
çok ilgisiz bilgi içerenlerin aksine çok daha okunabilir bir çıktı sağlar .
Harmanlamanın sütunlara da uygulanabileceğini unutmayın (tablonun kendisinden farklı bir harmanlamaya sahip olabilir). Belirli bir tablo için sütunların harmanlamasını getirmek için şunları sorgulayabilirsiniz INFORMATION_SCHEMA.COLUMNS
:
SELECT TABLE_SCHEMA
, TABLE_NAME
, COLUMN_NAME
, COLLATION_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 't_name';
Bu sorguyu kullanın:
SHOW CREATE TABLE tablename
Tablo ile ilgili tüm bilgileri alacaksınız.
...) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=latin1
Benim tahminim mysql / mariadb'nin sonraki sürümlerinde veritabanı için varsayılan olarak ayarlanmışsa harmanlamayı göstermeyebilir.
utf8
, ancak farklı harmanlamalara utf8_general_ci
karşı utf8_unicode_ci
. Bu, HY000, 1267, Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation '='
beni bu sayfaya getiren mesaj olan ... gibi hata mesajlarına neden olabilir .
Bu komut açıklar
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)