对 VARCHAR 修改强制截断?

Chr*_*all 2 mysql sql ddl alter-table

我想在几列上将 VARCHAR 上限设置为 255,以便我可以添加索引。

alter table striker modify contacts varchar(255)
Run Code Online (Sandbox Code Playgroud)

当我尝试运行上述命令时,我得到

Error Code: 1265. Data truncated for column 'contacts' at row 331   38.969 sec
Run Code Online (Sandbox Code Playgroud)

有没有办法强制截断列,以便此命令成功缩短 VARCHAR?我不在乎缩短列中的数据。

Mur*_*nik 5

您可以手动将列截断为 255 个字符:

UPDATE striker
SET    contacts = SUBSTR (contacts, 1, 255);
Run Code Online (Sandbox Code Playgroud)

现在,您知道没有值超过 255 个字符,您可以alter table安全地执行OP 中的语句。