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