create table check2(f1 varchar(20),f2 varchar(20));
创建具有默认排序规则latin1_general_ci
的表;
alter table check2 collate latin1_general_cs;
show full columns from check2;
将列的单独排序规则显示为“latin1_general_ci”。
那么alter table命令的效果是什么呢?
发布于 2009-04-12 19:05:33
MySQL有4个排序级别:服务器、数据库、表、列。如果更改服务器、数据库或表的排序规则,则不会更改每列的设置,但会更改默认排序规则。
例如,如果更改数据库的默认排序规则,则在该数据库中创建的每个新表都将使用该排序规则;如果更改表的默认排序规则,则在该表中创建的每一列都将获得该排序规则。
发布于 2009-04-12 18:58:56
它为表设置缺省排序规则;如果您创建了一个新列,那么应该使用latin_general_ci对其进行排序--我想。尝试为单个列指定排序规则,看看是否有效。MySQL在处理这个问题的方式上有一些非常奇怪的行为。
发布于 2017-09-21 05:28:02
可能需要更改模式,而不仅仅是表
ALTER SCHEMA `<database name>` DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_unicode_ci ;
正如里奇所说-- utf8mb4
(mariaDB 10)
https://stackoverflow.com/questions/742205
复制相似问题