উত্তর:
আমি এখানে এটি কীভাবে করব -
স্কিমাসের জন্য (বা ডেটাবেসগুলি - এগুলি প্রতিশব্দ):
SELECT default_character_set_name FROM information_schema.SCHEMATA
WHERE schema_name = "schemaname";
টেবিলগুলির জন্য:
SELECT CCSA.character_set_name FROM information_schema.`TABLES` T,
information_schema.`COLLATION_CHARACTER_SET_APPLICABILITY` CCSA
WHERE CCSA.collation_name = T.table_collation
AND T.table_schema = "schemaname"
AND T.table_name = "tablename";
কলামগুলির জন্য:
SELECT character_set_name FROM information_schema.`COLUMNS`
WHERE table_schema = "schemaname"
AND table_name = "tablename"
AND column_name = "columnname";
schemaname
কেবল ডাটাবেসের নাম হতে পারে।
জন্য কলাম :
SHOW FULL COLUMNS FROM table_name;
latin1_swedish_ci
তবে চরসেটটি অন্য কিছু হতে পারে না latin1
। যদি কোলেশন হয় utf8mb4_general_ci
তবে চরসেটটি ছাড়া আর কিছু হতে পারে না utf8mb4
।
জন্য ডাটাবেস :
USE your_database_name;
show variables like "character_set_database";
-- or:
-- show variables like "collation_database";
Cf. এই পৃষ্ঠার । এবং মাইএসকিউএল ম্যানুয়ালটি পরীক্ষা করে দেখুন
সার্ভারে থাকা সমস্ত ডাটাবেসের জন্য :
mysql> SELECT SCHEMA_NAME 'database', default_character_set_name 'charset', DEFAULT_COLLATION_NAME 'collation' FROM information_schema.SCHEMATA;
আউটপুট:
+----------------------------+---------+--------------------+
| database | charset | collation |
+----------------------------+---------+--------------------+
| information_schema | utf8 | utf8_general_ci |
| my_database | latin1 | latin1_swedish_ci |
...
+----------------------------+---------+--------------------+
একটি একক ডাটাবেসের জন্য :
mysql> USE my_database;
mysql> show variables like "character_set_database";
আউটপুট:
+----------------------------+---------+
| Variable_name | Value |
+----------------------------+---------+
| character_set_database | latin1 |
+----------------------------+---------+
টেবিলগুলির জন্য কোলেশন পাওয়া :
mysql> USE my_database;
mysql> SHOW TABLE STATUS WHERE NAME LIKE 'my_tablename';
অথবা - তৈরি টেবিলের জন্য সম্পূর্ণ এসকিউএল আউটপুট দেবে:
mysql> show create table my_tablename
কলামের সমাহার পাওয়া :
mysql> SHOW FULL COLUMNS FROM my_tablename;
আউটপুট:
+---------+--------------+--------------------+ ....
| field | type | collation |
+---------+--------------+--------------------+ ....
| id | int(10) | (NULL) |
| key | varchar(255) | latin1_swedish_ci |
| value | varchar(255) | latin1_swedish_ci |
+---------+--------------+--------------------+ ....
type
? আমি মাইএসকিউএল 5.7.9 আছে এবং type
দেন data type
কলামের না character set
। কিছু পছন্দ int(10)
varchar(255)
... ইত্যাদি এবং নাutf8
type
হিসাবে data type
ভাল @MTK যেমন, সম্ভবত উপরে একটি কপি পেস্ট ত্রুটি "আউটপুট:" বিভাগে।
জন্য টেবিল :
SHOW TABLE STATUS
সমস্ত সারণী তালিকাবদ্ধ করবে।
ফিল্টার ব্যবহার করে:
SHOW TABLE STATUS where name like 'table_123';
টেবিল_সেসিএএমএ নির্বাচন করুন, TABLE_NAME, সিসিএসএ.এইচআরএসিটিআইএসআইএআইএএইএসএএফএএফএএলএইচএইচএইএসএইএস হিসাবে, কলাম, COLUMN_TYPE, C.CHARACTER_SET_NAME তথ্য থেকে স্নেহমা। টেবিল হিসাবে এএস যোগদানের তথ্য_স্কেমা. COLUMNS AS সি ব্যবহার হিসাবে (TABLE_SCHEMA, TABLE_NAME) সিসিএসএ হিসাবে তথ্য_স্কেমা যোগ দিন। COLLATION_CHARACTER_SET_APPLICABILITY চালু (T.TABLE_COLLATION = CCSA.COLLATION_NAME) যেখানে ট্যাবলেট_সেক্মা = স্কেমা () এবং সিডি ডেটা_ওয়াইপি ইন ('এনাম', 'বর্ণচর', 'চর', 'পাঠ্য', 'মিডিয়ামটেক্সট', 'লম্বটেক্সট') ট্যাবলেট_সচেমার অর্ডার TABLE_NAME, কলাম ;
আমি সবসময় শুধু তাকান SHOW CREATE TABLE mydatabase.mytable
।
ডাটাবেসের জন্য, এটি আপনার দিকে তাকাতে হবে বলে মনে হচ্ছে SELECT DEFAULT_CHARACTER_SET_NAME FROM information_schema.SCHEMATA
।
select default_character_set_name from information_schema.schemata
যথেষ্ট নয় কারণ আপনি কোন সারিতে কোন ডাটাবেসের সাথে সম্পর্কিত হতে পারবেন তা বলতে পারবেন না। ব্যবহার করুন select default_character_set_name,schema_name from information_schema.schemata
অথবা শুধুমাত্র: select*from information_schema.schemata
।
SELECT * FROM information_schema.SCHEMATA WHERE SCHEMA_NAME = '<database-name>' \G;
এবং এটি দুর্দান্ত কাজ করেছে :) ধন্যবাদ!
ডাটাবেসের ডিফল্ট কল্যানেশন দেখতে:
USE db_name;
SELECT @@character_set_database, @@collation_database;
সারণির সমাহার দেখতে:
SHOW TABLE STATUS where name like 'table_name';
কলামগুলির সমাহার দেখতে:
SHOW FULL COLUMNS FROM table_name;
জন্য টেবিল এবং কলাম :
show create table your_table_name
জন্য ডাটাবেস :
SELECT SCHEMA_NAME 'database', default_character_set_name 'charset', DEFAULT_COLLATION_NAME 'collation' FROM information_schema.SCHEMATA;
উদাহরণ আউটপুট:
mysql> SELECT SCHEMA_NAME 'database', default_character_set_name 'charset', DEFAULT_COLLATION_NAME 'collation' FROM information_schema.SCHEMATA;
+----------------------------+---------+--------------------+
| database | charset | collation |
+----------------------------+---------+--------------------+
| information_schema | utf8 | utf8_general_ci |
| drupal_demo1 | utf8 | utf8_general_ci |
| drupal_demo2 | utf8 | utf8_general_ci |
| drupal_demo3 | utf8 | utf8_general_ci |
| drupal_demo4 | utf8 | utf8_general_ci |
| drupal_demo5 | latin1 | latin1_swedish_ci |
...
+----------------------------+---------+--------------------+
55 rows in set (0.00 sec)
mysql>
জন্য ডাটাবেস :
SHOW CREATE DATABASE "DB_NAME_HERE";
একটি ডেটাবেস (মাইএসকিউএল) তৈরি করার সময়, ডিফল্ট অক্ষর সেট / কোলেশন সর্বদা ল্যাটিন থাকে, পরিবর্তে আপনি প্রাথমিকভাবে আপনার ডাটাবেস তৈরির ক্ষেত্রে আলাদা আলাদা নির্বাচন করেছেন
latin1_swedish_ci
জোটবদ্ধকরণ কারণ মাইএসকিউএল এর নির্মাতা মন্টি উইদেনিয়াস সুইডিশ এবং তিনি যখন শুরু করেছিলেন তখন তার মতো বড় চিত্রের কথা ভাবছিলেন না।
যেমনটি অনেকে আগে লিখেছেন, কলামের তথ্য পাওয়ার জন্য পুরো কালামগুলি পছন্দনীয় পদ্ধতি হওয়া উচিত। যা অনুপস্থিত তা হ'ল সরাসরি মেটাডেটা টেবিলগুলিতে না পৌঁছানো পরে চরসেট পাওয়ার একটি উপায়:
SHOW FULL COLUMNS FROM my_table WHERE Field = 'my_field'
SHOW COLLATION WHERE Collation = 'collation_you_got'
SHOW CREATE TABLE