Alter table merry_parents change mobile mobile char(10).
当我执行上述操作时,我收到错误:
#1265 - 第2行的“移动”列截断数据
如何将移动字段截断为char(10)?目前它是char(12)。
答案 0 :(得分:21)
错误告诉您第2行(可能还有其他数据)中有12个字符的数据,所以它会停止alter命令以避免丢失数据。
尝试使用SUBSTRING()
更新您的表格以缩短列。目前还不清楚为什么要这样做会丢失数据,但这会将数据截断为10个字符:
UPDATE merry_parents SET mobile=SUBSTRING(mobile, 1, 10)
然后运行你的alter命令:
ALTER TABLE merry_parents CHANGE mobile mobile char(10).
答案 1 :(得分:3)
如果您可以将数据截断为10个字符 - 您可以先更新列,然后再调整大小
UPDATE <tablename> set mobile = left(mobile, 10);
然后运行你的alter语句。
答案 2 :(得分:1)
如果您愿意截断数据,可以使用ALTER上的IGNORE选项一步完成:
ALTER IGNORE TABLE merry_parents MODIFY mobile char(10);
答案 3 :(得分:0)