mariadb 删除set选项时的SQL数据截断

t9eec4r0  于 10个月前  发布在  其他
关注(0)|答案(1)|浏览(88)

我试图从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')

f5emj3cl

f5emj3cl1#

如果这是巧合或什么,那就不是100%,但是删除数据库并从生产环境加载最新的副本是有效的。请注意,ID为121393的行在两个环境中具有相同的值,因此我想知道是否存在某种形式的损坏,加载新副本时已修复。
如果将来有人遇到这种情况,使用mysqldump并重新加载整个数据库可能是一个有效的选择。

相关问题