set name和set charset的区别

yhxst69z  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(467)

简单地说,这两者之间的区别是什么:
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 'collation%' 但我不能指出两者之间的区别 SET NAMES 有一个可选的 COLLATE 哪一套 collation_connection .

ukqbszuj

ukqbszuj1#

下面是每个语句设置的变量的摘要:

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不会将连接charset设置为参数中指定的charset,而是将其设置为当前默认数据库的charset,如果您已经这样做了 USE <database> .
为什么这两种说法都存在?我不知道,我查看了mysql 4.1的手册,两个语句都在那里,但是没有解释为什么需要两个语句。
我想这是为了与其他sql实现兼容。

相关问题