我试图从SET数据类型中删除一些选项。我已经确认数据库中没有使用这些选项的行。不知何故,我仍然得到一个数据截断错误:
ALTER TABLE myTable
CHANGE `status` `status` set('Init','TimedOut','Processing','Unknown','Validate','Duplicate','Remove');
Error in query (1265): Data truncated for column 'status' at row 121393
字符串
但是如果我检查第121393行:
SELECT status FROM myTable WHERE id=121393;
+--------+
| status |
+--------+
| |
+--------+
型
它是空的,这对我来说当然不是无效的。这是怎么回事,我该怎么解决?
附加说明:status
的原始数据类型是一个带有两个附加选项的集合,具体顺序如下所示:set('Init','TimedOut','Processing','Unused','Unknown','Validate','Duplicate','Remove','Unused2')
个
1条答案
按热度按时间f5emj3cl1#
如果这是巧合或什么,那就不是100%,但是删除数据库并从生产环境加载最新的副本是有效的。请注意,ID为121393的行在两个环境中具有相同的值,因此我想知道是否存在某种形式的损坏,加载新副本时已修复。
如果将来有人遇到这种情况,使用
mysqldump
并重新加载整个数据库可能是一个有效的选择。