mysql:如何截断字段的长度

20 浏览
0 Comments

mysql:如何截断字段的长度

当我执行上述操作时,我遇到了错误:\n#1265 - 第2行的\'mobile\'列数据被截断。\n如何将我的mobile字段截断为char(10)?目前它是char(12)。

0
0 Comments

问题:如何截断mysql字段的长度?

原因:如果想要截断数据,可以在ALTER语句中使用IGNORE选项来一步完成。然而,如果使用的是较旧版本的MySQL,这种方法将无效。因为在MySQL 5.6中,IGNORE选项已经被弃用,在MySQL 5.7中被移除。

解决方法:在ALTER语句中使用IGNORE选项来截断字段长度。然而,需要注意的是,这种方法只适用于较旧版本的MySQL。在MySQL 5.6及以后的版本中,IGNORE选项已经不再可用。

参考链接:dev.mysql.com/worklog/task/?id=7395

0
0 Comments

如果您只希望将数据截断到10个字符,您可以先更新列,然后调整大小:

UPDATE  set mobile = left(mobile, 10);

然后运行您的alter语句。

看到我的表中有一个字段gender char(1),我想将它更改为gender enum('m','f','o'),我该怎么做?直接从char改为enum时显示截断错误。

0
0 Comments

这个问题的出现的原因是在第2行(和可能还有其他行)存在长度为12个字符的数据,因此停止了alter命令以避免丢失数据。

解决方法是使用SUBSTRING()函数来更新表格并缩短列的长度。不清楚为什么要这样做,因为这将导致数据丢失,但是以下代码将数据截断为10个字符的长度:

UPDATE merry_parents SET mobile=SUBSTRING(mobile, 1, 10)

然后运行alter命令:

ALTER TABLE merry_parents CHANGE mobile mobile char(10).

谢谢,这个方法有效!:) 我正在使用测试数据,所以丢失数据也没有关系。:)

我有一个表格,其中有一个字段为gender char(1),我想将其更改为gender enum('m','f','o'),应该怎么做?直接从char更改为enum时出现了截断错误。

0