强制截断VARCHAR修改?

时间:2015-01-07 21:42:22

标签: mysql sql ddl alter-table

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

alter table striker modify contacts varchar(255)

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

Error Code: 1265. Data truncated for column 'contacts' at row 331   38.969 sec

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

2 个答案:

答案 0 :(得分:2)

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

UPDATE striker
SET    contacts = SUBSTR (contacts, 1, 255);

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

答案 1 :(得分:0)

为什么要打扰截断列?只需使用列的长度说明符创建索引。这是一个例子:

create index idx_striker_contacts on striker(contacts(255))

您可以为多个列执行此操作。