MySQL表排序规则不同报错问题分析


当前第2页 返回上一页

如果使用下面这种方式修改字符集,你会发现,只更改了表级的,没有更改列级的。


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

mysql> ALTER TABLE cs CHARACTER SET utf8 collate utf8_unicode_ci;     

Query OK, 0 rows affected (0.01 sec)

Records: 0 Duplicates: 0 Warnings: 0

  

mysql> select TABLE_SCHEMA,TABLE_NAME,TABLE_COLLATION from information_schema.tables where table_name='cs';     

+--------------+------------+-----------------+

| TABLE_SCHEMA | TABLE_NAME | TABLE_COLLATION |

+--------------+------------+-----------------+

| test     | cs     | utf8_unicode_ci |

+--------------+------------+-----------------+

1 row in set (0.00 sec)

  

mysql> select TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME,COLLATION_NAME from information_schema.COLUMNS where TABLE_NAME='cs';

+--------------+------------+-------------+-----------------+

| TABLE_SCHEMA | TABLE_NAME | COLUMN_NAME | COLLATION_NAME |

+--------------+------------+-------------+-----------------+

| test     | cs     | id     | NULL      |

| test     | cs     | name    | utf8_general_ci |

+--------------+------------+-------------+-----------------+

2 rows in set (0.00 sec)

所以真正改字符集的时候别忘了加上CONVERT TO,如下:


1

2

3

4

5

6

7

8

9

10

11

12

mysql> ALTER TABLE cs CONVERT TO CHARACTER SET utf8 collate utf8_unicode_ci;

Query OK, 5 rows affected (0.06 sec)

Records: 5 Duplicates: 0 Warnings: 0

  

mysql> select TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME,COLLATION_NAME from information_schema.COLUMNS where TABLE_NAME='cs';

+--------------+------------+-------------+-----------------+

| TABLE_SCHEMA | TABLE_NAME | COLUMN_NAME | COLLATION_NAME |

+--------------+------------+-------------+-----------------+

| test     | cs     | id     | NULL      |

| test     | cs     | name    | utf8_unicode_ci |

+--------------+------------+-------------+-----------------+

2 rows in set (0.00 sec)

要仅仅改变一个表的默认字符集,应使用此语句:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

mysql> ALTER TABLE cs default CHARACTER SET utf8 collate utf8_general_ci,ALGORITHM=INPLACE,LOCK=NONE;        

Query OK, 0 rows affected (0.00 sec)

Records: 0 Duplicates: 0 Warnings: 0

  

mysql> select TABLE_SCHEMA,TABLE_NAME,TABLE_COLLATION from information_schema.tables where table_name='cs';     

+--------------+------------+-----------------+

| TABLE_SCHEMA | TABLE_NAME | TABLE_COLLATION |

+--------------+------------+-----------------+

| test     | cs     | utf8_general_ci |

+--------------+------------+-----------------+

1 row in set (0.00 sec)

  

mysql> select TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME,COLLATION_NAME from information_schema.COLUMNS where TABLE_NAME='cs'

+--------------+------------+-------------+-----------------+

| TABLE_SCHEMA | TABLE_NAME | COLUMN_NAME | COLLATION_NAME |

+--------------+------------+-------------+-----------------+

| test     | cs     | id     | NULL      |

| test     | cs     | name    | utf8_unicode_ci |

+--------------+------------+-------------+-----------------+

2 rows in set (0.00 sec)

可以发现列字符集没有改变,并且只有新的列才会默认继承表的字符集(utf8.utf8_general_ci)。

相关推荐:

MySQL表的四种分区类型的代码详解

如何使用mysql表连接

php mysql表中文乱码问题如何解决

以上就是MySQL表排序规则不同报错问题分析的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

navicat导入sql报错怎么解决

mysql查询怎么优化?mysql查询优化的方法介绍

mysql多字段主键

mysql超详细讲解表的用法

mysql的常用命令有哪些

mysql的表空间是什么

mysq详细讲解如何解决库存并发问题

如何解决mysql更新失败的问题

mysql 字符串拆分操作(含分隔符的字符串截取)

linux安装jdk和tomcat以及mysql的图文教程

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...