当您为没有能力存储该数据的列插入更多数据时,将发生“数据对于列而言太长”错误。
例如-如果您的数据类型为varchar(6),则意味着它仅存储6个字符。因此,如果您输入的字符数超过6个,则会出现错误。
让我们创建一个表来了解该错误。创建表的查询如下-mysql> create table DataToolongDemo
−> (
−> Name varchar(10)
−> );
上面,我们已经成功创建了一个表。我们使用“ varchar(10)”设置了一个“名称”字段。现在,如果我们提供10个以上的字符,将产生一个错误。
错误如下-mysql> insert into DataToolongDemo values('Carol Taylor');
ERROR 1406 (22001): Data too long for column 'Name' at row 1
要纠正上述错误,可以将类型设置为longtext。查询如下,将类型更改为longtext,因为当前类型为“ varchar”-mysql> alter table DataToolongDemo change Name Name longtext;
Records: 0 Duplicates: 0 Warnings: 0
现在,如果您将插入相同的记录,那么将不会产生错误-mysql> insert into DataToolongDemo values('Carol Taylor');
在select语句的帮助下显示表中的所有记录。查询如下-mysql> select *from DataToolongDemo;
以下是输出-+--------------+
| Name |
+--------------+
| Carol Taylor |
+--------------+
1 row in set (0.00 sec)