我正在尝试向表中添加一个int字段:
ALTER TABLE `hisData`
ADD COLUMN `hisID2` INT NULL DEFAULT NULL AFTER `hisID`;
但是我收到一个mysql错误:
SQL Error (1292): Incorrect datetime value: '1899-00-É5 É5:É5:É5' for column 'timeImported' at row 7264593
首先,表很大(很明显),但是娱乐性强(有趣的统计数据),所以我只是将其放在标准HHD上,该标准在不久前就开始出现故障并被替换了,但是在此之前,显然没有损坏该表位。
我已经进行过维修(先快速,然后正常,然后再延长),但似乎无法解决。
显然,逐步解决此问题并不实际。关于如何修复损坏的线有任何想法吗?
松开腐败线将不会有什么大碍。
答案 0 :(得分:0)
弄清楚了。
ALTER TABLE `hisData` MODIFY `timeImported` varchar(20);
然后
ALTER IGNORE TABLE `hisData` MODIFY `timeImported` datetime;
这减少了我的糟糕约会
在更改之前可能会找到MIN&MAX日期,然后选择任何较小或较大的日期,然后再选择varchar来查找大多数问题(虽然不一定全部),但我并不担心该表上的数据丢失。
答案 1 :(得分:0)
您在以 1899-00- 开头的 timeImported 列中的日期时间值不正确。您有一些选择:
UPDATE table_x SET timeImported='1899-01-01 00:00:00' WHERE timeImported LIKE '0000%' 或 timeImported LIKE '%-00%'