Каковы команды для включения и отключения чувствительности к регистру по умолчанию для всей базы данных на сервере MySQL? Я знаю оператор COLLATE, но, кажется, необходимо поместить его в каждый выполняемый SQL-оператор. Есть ли возможность установить это глобально?
Как настроить MySQL на чувствительность к регистру
Ответ 1
Вы можете установить сопоставление как на уровне создания базы данных, так и на уровне создания таблицы как часть инструкции CREATE TABLE.
Чтобы настроить сортировку для всей базы данных, вы можете использовать:
CREATE DATABASE test_database CHARACTER SET utf8 COLLATE utf8_general_cs;
Вы также можете изменить сортировку по существующей базе данных с помощью ALTER DATABASE. (Для получения дополнительной информации см. Руководство пользователя MySQL "Набор символов и сортировка базы данных" .)
Если, однако, только одна таблица должна рассматриваться как чувствительная к регистру, вы можете просто использовать:
DROP TABLE IF EXISTS test_table;
CREATE TABLE test_table (
test_id bigint unsigned NOT NULL auto_increment,
...
PRIMARY KEY test_id (test_id),
...
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE utf8_general_cs;
(регистр нечувствителен к "utf8_general_ci
".)
Наконец, основная глава MySQL Поддержка набора символов, вероятно, стоит быстро перечитать. (Он перечисляет наборы символов и сопоставления, поддерживаемые MySQL, сообщает вам, как s et набор символов/сортировка на уровне сервера и т.д.)
Ответ 2
Я пришел сюда, чтобы изменить сортировку только для определенного столбца, чтобы она зависела от регистра, а не для всей таблицы или базы данных. Надеюсь, это поможет кому-то посмотреть только на это.
Этот запрос можно попробовать:
ALTER TABLE table_name MODIFY column_name column_datatype COLLATE utf8_bin;