在5.0版本中,配置mysql时选择的是utf8,在建表时有定义:engine=innodb default charset=utf8,结果运行时中文插不进去,会显示错误:data too long for column 'Aname' at row 1mysql> show create table send;
+-------+-------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------+
| Table | Create Table
|
+-------+-------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------+
| send | CREATE TABLE `send` (
`Aname` varchar(50) NOT NULL,
`Id` bigint(8) NOT NULL,
`Date` varchar(50) default NULL,
PRIMARY KEY (`Aname`,`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+-------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)mysql> select * from send;
Empty set (0.00 sec)mysql> insert into send values ('把握','1','10');
ERROR 1406 (22001): Data too long for column 'Aname' at row 1
mysql>
+-------+-------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------+
| Table | Create Table
|
+-------+-------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------+
| send | CREATE TABLE `send` (
`Aname` varchar(50) NOT NULL,
`Id` bigint(8) NOT NULL,
`Date` varchar(50) default NULL,
PRIMARY KEY (`Aname`,`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+-------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)mysql> select * from send;
Empty set (0.00 sec)mysql> insert into send values ('把握','1','10');
ERROR 1406 (22001): Data too long for column 'Aname' at row 1
mysql>
我想问一下为什么要先set names gbk啊??
参考下贴中关于字符集的介绍。
http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
MySQL 中文显示乱码