还能放呢
RECORD_CONTENT VARCHAR(500)文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的13213文字的文字的文字的文字的文字12312312321
RECORD_CONTENT VARCHAR(500)文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的13213文字的文字的文字的文字的文字12312312321
你出现的那种情况,主要是字符和字节造成的,500个字符,utf8的每个汉字需要3个字节,而用length查看某个字段长度时,是按照字节进行的,原因就在这里了
去查MYSQL手册吧
Query OK, 0 rows affected (0.09 sec)mysql> insert into tx values ('1234567890');
Query OK, 1 row affected (0.06 sec)mysql> insert into tx values ('文字文字文字文字文字');
ERROR 1406 (22001): Data too long for column 'c1' at row 1
mysql> insert into tx values ('文字文字文');
Query OK, 1 row affected (0.06 sec)mysql> show create table tx;
+-------+---------------------------------------
| Table | Create Table
+-------+---------------------------------------
| tx | CREATE TABLE `tx` (
`c1` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-------+---------------------------------------
1 row in set (0.00 sec)mysql>
show variables like 'char%';