alter表add列后的日期时间值不正确



我正试图向表中添加一个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上,这个HHD在一段时间前开始失败,后来被替换了,但显然,在这之前,这个表有点坏了。

我已经进行了修复(先快速,然后正常,然后延长(,但似乎还没有解决这个问题。

显然,这种一行一行的做法是不可行的。关于如何修复损坏的线路,有什么想法吗?

掠夺腐败的防线并不是什么大不了的事。

想明白了。

ALTER TABLE `hisData` MODIFY `timeImported` varchar(20);

然后

ALTER IGNORE TABLE `hisData` MODIFY `timeImported` datetime;

这让我的糟糕约会掉了

可能已经找到了MIN&更改前的MAX日期,然后选择比切换到varchar后更小或更大的日期,以查找大多数问题(但不一定全部(,但我并不担心此表上的数据丢失。

timeImported列中的日期时间值不正确,该列以1899-00-开头。你有一些选择:

  1. 修复它,在00个月000天后搜索,并将其更改为有效的日期时间

UPDATE table_x SET timeImported='1899-01-01 00:00:00'WHEREtimeImported LIKE"0000%"或timeImported LIKE"%-00%">

  1. 设置SQL_MODE='ALLOW_INVALID_DATES'则错误将被忽略

最新更新