我想在几列上将VARCHAR限制为255,以便我可以添加索引。
alter table striker modify contacts varchar(255)
当我尝试运行上述命令时,我得到了
Error Code: 1265. Data truncated for column 'contacts' at row 331 38.969 sec
有没有办法强制截断列,以便此命令成功缩短VARCHAR?我并不关心缩短专栏中的数据。
答案 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))
您可以为多个列执行此操作。