0

我尝试以下更改表:
ALTER TABLE test MODIFY COLUMN a timestamp NULL DEFAULT '1970-01-01 00:00:01';

表结构为:

CREATE TABLE `test` (
 `a` timestamp NULL DEFAULT '0000-00-00 00:00:00'
) ENGINE=InnoDB DEFAULT CHARSET=utf8

我的 sql_mode 是:

STRICT_TRANS_TABLES,
NO_ZERO_IN_DATE,
NO_ZERO_DATE,
ERROR_FOR_DIVISION_BY_ZERO,
NO_AUTO_CREATE_USER,
NO_ENGINE_SUBSTITUTION

我得到的错误是:#1067 - Unknown error 1067 其他让我感到困惑的事情,为什么它没有显示实际错误?

4

1 回答 1

0

看来,您的服务器已ALLOW_INVALID_DATES禁用。

服务器要求月份和日期值是合法的,而不仅仅是分别在 1 到 12 和 1 到 31 的范围内。禁用严格模式后,“2004-04-31”等无效日期将转换为“0000-00-00”并生成警告。启用严格模式后,无效日期会产生错误。要允许此类日期,请启用 ALLOW_INVALID_DATES

于 2018-01-30T15:07:27.517 回答