求教关于mysql字符集的问题, 我在对mysql字符集这一块的学习中遇见下面这样一个很让人困惑的问题, 希望能得到你们的帮助CREATE TABLE `t1` (
  `x` char(100) CHARACTER SET gb2312 DEFAULT NULL,
  `y` char(100) CHARACTER SET latin1 DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8使用windows命令行程序(它使用的是GB2312编码)1. select @@character_set_client, @@character_set_connection, @@character_set_results 均返回utf8(系统默认值)2. insert into t1 values('中', '国'), 提示 Incorrect string value3. 设置set @@character_set_client=gb2312的时候, 可以执行insert into t1(x)...... x是一个要求gb2312的列4. 设置set @@character_set_client=latin1的时候, 可以执行insert into t1(y)...... y是一个要求latin1的列那么这里我总结出, 如果要想正确插入数据, 那么@@character_set_client设置的字符集必须与字段的字符集一致???CREATE TABLE `t2` (
  `x` char(100) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8使用windows命令行程序(它使用的是GB2312编码)1. select @@character_set_client, @@character_set_connection, @@character_set_results 均返回utf8(系统默认值)2. insert into t2 values('中'); 提示 Incorrect string value3. 设置set @@character_set_client=gb2312的时候, 可以执行insert into t2 values('中')......但是这里我有觉得困惑了, @@character_set_client的设置在这里与列的字符集类型(utf85)并不一致, 为什么还能执行成功???=================================================================================
非常感谢