Что такое (по умолчанию) кодировка для:
-
База данных MySQL
-
Таблица MySQL
-
столбец MySQL
Что такое (по умолчанию) кодировка для:
База данных MySQL
Таблица MySQL
столбец MySQL
Вот как бы я это сделал -
Для схем (или баз данных - это синонимы):
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";
Для столбцов :
SHOW FULL COLUMNS FROM table_name;
Для баз данных:
USE your_database_name;
show variables like "character_set_database";
-- or:
-- show variables like "collation_database";
Cf. эта страница. И проверьте руководство по MySQL
Для всех баз данных на вашем сервере:
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';
ИЛИ - выведет полный SQL для создания таблицы:
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 |
+---------+--------------+--------------------+ ....
Для таблиц:
SHOW TABLE STATUS
отобразит все таблицы.
Фильтр с использованием:
SHOW TABLE STATUS where name like 'table_123';
Для баз данных:
Просто используйте следующие команды:
USE db_name;
SELECT @@character_set_database;
-- or:
-- SELECT @@collation_database;
SELECT TABLE_SCHEMA, TABLE_NAME, CCSA.CHARACTER_SET_NAME AS DEFAULT_CHAR_SET, COLUMN_NAME, COLUMN_TYPE, C.CHARACTER_SET_NAME FROM information_schema.TABLES AS T JOIN information_schema.COLUMNS AS C USING (TABLE_SCHEMA, TABLE_NAME) JOIN information_schema.COLLATION_CHARACTER_SET_APPLICABILITY AS CCSA ON (T.TABLE_COLLATION = CCSA.COLLATION_NAME) WHERE TABLE_SCHEMA=SCHEMA() AND C.DATA_TYPE IN ('enum', 'varchar', 'char', 'text', 'mediumtext', 'longtext') ORDER BY TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME ;
Чтобы увидеть параметры сортировки базы данных по умолчанию:
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 mydatabase.mytable
.
Для базы данных, похоже, вам нужно посмотреть SELECT DEFAULT_CHARACTER_SET_NAME FROM information_schema.SCHEMATA
.
Для таблиц и столбцов:
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";
При создании базы данных (MySQL) набор символов/сортировка по умолчанию всегда LATIN, вместо этого вы выбрали другой вариант при первоначальном создании своей базы данных
Как многие писали ранее, SHOW FULL COLUMNS должен быть предпочтительным методом для получения информации о столбцах. Отсутствует способ получить кодировку после этого без непосредственного доступа к таблицам метаданных:
SHOW FULL COLUMNS FROM my_table WHERE Field = 'my_field'
SHOW COLLATION WHERE Collation = 'collation_you_got'