如何配置MySQL区分大小写

时间:2011-02-02 21:04:17

标签: mysql

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

3 个答案:

答案 0 :(得分:29)

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

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

CREATE DATABASE test_database CHARACTER SET utf8 COLLATE utf8_general_cs;

您还可以通过ALTER DATABASE更改现有数据库的排序规则。 (有关更多信息,请参阅MySQL Database Character Set and Collation手册条目。)

但是,如果只需要将一个表视为区分大小写,则可以使用:

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 Character Set Support手册部分可能值得快速阅读。 (它列出了character sets and collations supported by MySQL,告诉你如何s et the character set/collation at the server level等。)

答案 1 :(得分:3)

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

可以尝试此查询:

ALTER TABLE table_name MODIFY column_name column_datatype COLLATE utf8_bin;

答案 2 :(得分:0)

使用区分大小写的排序规则创建MySQL数据库的最常见方法是:

CREATE DATABASE your_db_name CHARACTER SET utf8 COLLATE utf8-bin;