gpt4 book ai didi

mysql - SET NAMES 和 SET CHARSET 的区别

转载 作者:行者123 更新时间:2023-11-29 05:53:23 29 4
gpt4 key购买 nike

简单来说,有什么区别:

https://dev.mysql.com/doc/refman/5.7/en/set-character-set.html

https://dev.mysql.com/doc/refman/5.7/en/set-names.html

我查看了连接字符集页面:

https://dev.mysql.com/doc/refman/5.7/en/charset-connection.html

我检查过SHOW VARIABLES LIKE 'char%'SHOW VARIABLES LIKE 'collat​​ion%' 但我无法指出两者之间的区别除此之外,SET NAMES 有一个可选的 COLLATE,它设置了 collat​​ion_connection

最佳答案

下面总结了每条语句设置的变量:

Variable                 SET NAMES   SET CHARSET
character_set_client argument argument
character_set_results argument argument
character_set_connection argument default for default db
collation_connection argument* default for default db

所以最大的区别是 SET CHARSET 不会将连接字符集设置为您在参数中指定的字符集,而是将其设置为当前默认数据库的字符集,也就是说,如果您完成了 USE <database> .

为什么这两种说法都存在?我不知道,我一直查看 MySQL 4.1 的手册,两个语句都在那里,但没有解释为什么他们需要两个语句。

我猜这是为了与其他 SQL 实现兼容。

关于mysql - SET NAMES 和 SET CHARSET 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52058937/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com