mysql:如何截断字段的长度

vaa*_*ala 9 mysql field truncate alter

Alter table merry_parents change mobile mobile char(10).
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我收到错误:

#1265 - 第2行的"移动"列截断数据

如何将我的移动字段截断为char(10)?目前它是char(12).

Boj*_*les 23

错误告诉您第2行(可能还有其他数据)中有12个字符的数据,因此它会停止alter命令以避免丢失数据.

尝试使用SUBSTRING()缩短列来更新表.目前还不清楚你为什么要这样做,因为你会丢失数据,但这会将数据截断为10个字符:

UPDATE merry_parents SET mobile=SUBSTRING(mobile, 1, 10)
Run Code Online (Sandbox Code Playgroud)

然后运行你的alter命令:

ALTER TABLE merry_parents CHANGE mobile mobile char(10).
Run Code Online (Sandbox Code Playgroud)


Jod*_*ody 5

如果您同意将数据截断为 10 个字符- 您可以先更新列,然后调整其大小

UPDATE <tablename> set mobile = left(mobile, 10);
Run Code Online (Sandbox Code Playgroud)

然后运行您的 alter 语句。