Mysql VARCHAR修改上的强制截断?
我想在一些列上将VARCHAR限制为255,以便添加索引Mysql VARCHAR修改上的强制截断?,mysql,sql,ddl,alter-table,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?我不在乎缩短列中的数据。您可以手动截断255个字符的列: UPDATE striker SE
alter table striker modify contacts varchar(255)
当我尝试运行上面的命令时,我得到
Error Code: 1265. Data truncated for column 'contacts' at row 331 38.969 sec
是否有办法强制截断列,以便此命令成功缩短VARCHAR?我不在乎缩短列中的数据。您可以手动截断255个字符的列:
UPDATE striker
SET contacts = SUBSTR (contacts, 1, 255);
现在,您知道值的长度不超过255个字符,可以安全地执行OP中的alter table语句。您可以手动截断255个字符的列:
UPDATE striker
SET contacts = SUBSTR (contacts, 1, 255);
现在,您知道值的长度不超过255个字符,可以安全地执行OP中的alter table语句。为什么要截断列?只需使用列的长度说明符创建索引。以下是一个例子:
create index idx_striker_contacts on striker(contacts(255))
您可以对多个列执行此操作。为什么要费心截断该列?只需使用列的长度说明符创建索引。以下是一个例子:
create index idx_striker_contacts on striker(contacts(255))
您可以对多个列执行此操作。我想添加一个索引以提高查询性能。部分索引可以做到吗?@ChrisHall。MySQL应该在大多数情况下使用索引for=,我想添加一个索引来提高查询性能。部分索引可以做到吗?@ChrisHall。MySQL在大多数情况下都应该为=,,