mysql - 如何将 MySQL 配置为区分大小写

标签 mysql

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

最佳答案

作为 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 ,告诉您如何使用 et the character set/collation at the server level 等)

关于mysql - 如何将 MySQL 配置为区分大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4879846/

相关文章:

mysql - 自动化 ETL/数据库迁移解决方案

mysql - 如果存在则更新,否则插入两个唯一列mysql

python - PBKDF2 中的盐 - Python

php - 使用 PDO 更新旧的 Mysql 语句

mysql - 使用模型搜索特定字段

python MySQL : how do loop through table and regex-replacing field?

mysql - Rails ActiveRecord 多级关联

php - 选择一列为 min 的行

mysql - rails 搜索方法

mysql - 连接 Spotfire Azure MySQL 数据库