如何配置MySQL区分大小写

Cer*_*rin 14 mysql

默认情况下,MySQL服务器上的整个数据库启用和禁用区分大小写的命令是什么?我知道COLLATE语句,但似乎有必要将它放在每个运行的SQL语句中.是否可以选择全局设置?

Joh*_*ker 29

您可以在数据库创建和表创建级别设置排序规则作为CREATE TABLE语句的一部分.

要为整个数据库设置排序规则,您可以使用:

CREATE DATABASE test_database CHARACTER SET utf8 COLLATE utf8_general_cs;
Run Code Online (Sandbox Code Playgroud)

您还可以通过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;
Run Code Online (Sandbox Code Playgroud)

(不区分大小写为" utf8_general_ci".)

最后,主要的MySQL 字符集支持手册部分可能值得快速浏览.(它列出了MySQL支持字符集和排序规则,告诉您如何在服务器级别进行字符集/排序等)

  • 错误代码:1273未知排序规则:'utf8_general_cs' (11认同)
  • 或者也可以使用`utf8_bin`. (6认同)

Nul*_*nce 5

我来这里只是想修改特定列的排序规则,使其区分大小写,而不是整个表或数据库。希望它可以帮助寻找这个的人。

可以尝试此查询:

ALTER TABLE table_name MODIFY column_name column_datatype COLLATE utf8_bin;
Run Code Online (Sandbox Code Playgroud)