একটি টেবিলের mysql চেক কোলেশন lation


106

একটি টেবিলের কী জোট রয়েছে তা আমি কীভাবে দেখতে পারি? আমি দেখতে চাই:

+-----------------------------+
|  table  |     collation     |
|-----------------------------|
| t_name  |  latin_general_ci |
+-----------------------------+

উত্তর:


159

SHOW TABLE STATUS কোলেশন সহ একটি টেবিল সম্পর্কিত তথ্য দেখায়।

উদাহরণ স্বরূপ SHOW TABLE STATUS where name like 'TABLE_NAME'


78

উপরের উত্তরটি দুর্দান্ত, তবে এটি আসলে এমন একটি উদাহরণ দেয় না যা ব্যবহারকারীকে সিনট্যাক্সটি সন্ধান করতে বাঁচায়:

show table status like 'test';

testটেবিলের নাম কোথায় ।

(নীচের মন্তব্য অনুযায়ী সংশোধন করা হয়েছে।)


14

আপনি INFORMATION_SCHEMA.TABLESসুনির্দিষ্ট সারণীর জন্য কোয়েলেশনও জানতে এবং পেতে পারেন :

SELECT TABLE_SCHEMA
    , TABLE_NAME
    , TABLE_COLLATION 
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 't_name';

SHOW TABLE STATUSএতে প্রচুর অপ্রাসঙ্গিক তথ্য রয়েছে তার বিপরীতে অনেক বেশি পঠনযোগ্য আউটপুট দেয় ।


নোট করুন যে কোলেশন কলামগুলিতেও প্রয়োগ করা যেতে পারে (যার টেবিলের চেয়ে আলাদা কোল্যাশন থাকতে পারে)। একটি নির্দিষ্ট টেবিলের জন্য কলামগুলির সংকলন আনার জন্য, আপনি কোয়েরি করতে পারেন INFORMATION_SCHEMA.COLUMNS:

SELECT TABLE_SCHEMA 
    , TABLE_NAME 
    , COLUMN_NAME 
    , COLLATION_NAME 
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 't_name';

2
মারিয়াডিবি 10.4 এর জন্য কাজ করে
তারাটার

8

এই প্রশ্নটি ব্যবহার করুন:

SHOW CREATE TABLE tablename

আপনি টেবিল সম্পর্কিত সমস্ত তথ্য পাবেন।


3
শো তৈরি করুন টেবিল কোলেশন দেখায় না। উপরে বর্ণিত হিসাবে আপনাকে শো টেবিল পরিস্থিতি ব্যবহার করতে হবে।
কেটইয়াক

1
MySQL 5.5.52 এ আমার জন্য কাজ করে। ...) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=latin1আমার ধারণা এটি মাইকিকিএল / মারিয়্যাডবি-র পরবর্তী সংস্করণগুলিতে ডাটাবেসের জন্য ডিফল্ট সেট করা থাকলে এটি কোলেশনটি না দেখায়।
বিকাশকারী 24

1
@ ডেভেলপারক্রিস আপনি যা দেখান তা হল চার্সেট, কোলেশন নয়। দুটি টেবিলের একই চরসেট থাকতে পারে utf8তবে বিভিন্ন utf8_general_ciবনাম বনাম utf8_unicode_ci। এটি ত্রুটির বার্তাগুলির কারণ হতে পারে HY000, 1267, Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation '='... যা বার্তাটি আমাকে এই পৃষ্ঠায় নিয়ে আসে।
দেউই মরগান

0

এই আদেশটি বর্ণনা করে

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)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.