mysql:alter table modify column上的列的数据太长
我正在将一列从text更改为varchar列mysql:alter table modify column上的列的数据太长,mysql,alter-table,Mysql,Alter Table,我正在将一列从text更改为varchar列 +------------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------------+--------------+------+-----+---------+-------+ | ID | bigint(19
+------------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------+--------------+------+-----+---------+-------+
| ID | bigint(19) | NO | PRI | NULL | |
| STATUS | varchar(120) | YES | | NULL | |
| PRIORITY | varchar(120) | YES | | NULL | |
| DESCRIPTION | text | YES | | NULL | |
当我执行下面的查询时
alter table StatInfo modify column DESCRIPTION varchar(255) NULL;
上面说
错误1406(22001):对于第7行的“说明”列,数据太长
它不会截断列中的值并更改表why?。与旧版本一样,它可以工作。可能需要检查sql模式,如果它严格,则会显示此错误 当您使用change或MODIFY更改数据类型时,MySQL会尝试 尽可能将现有列值转换为新类型 警告:此转换可能导致数据更改。例如 如果缩短字符串列,值可能会被截断。阻止 从后续if转换到新数据类型的操作 将导致数据丢失,请在使用之前启用严格的SQL模式 更改表(参见第5.1.6节“服务器SQL模式”) 我建议你去
1) 将该表复制到临时表上(通过插入选择)
2) 更改原始表格
3) 使用1)中描述的相同步骤恢复原始表中的值