由于日期时间默认值无效,无法添加新列

Unable to add new column due to invalid datetime default value

在我的 table 中,我有两列和其他列。这两列都是DATETIME类型,它们的值被之前的程序员设置为0000-00-00 00:00:00。现在我只想添加具有 int 数据类型的列。但是,每次我在 phpMyAdmin 中单击保存时,它都会说前两个 table 的默认值无效。

所以我点击其中之一将默认值设置为 none,即 registerDateLastLoginDate 列。每当我在 registerDate 上单击保存时,它都会显示 LastLoginDate 具有无效的默认值,而每当我在 LastLoginDate 上单击保存时,它会显示 registerDate 具有无效的默认值。基本上我只是无法更改这两列中的默认值,也无法添加任何其他列。

我确实参考了这些,但不知何故它们无助于解决我的问题:

MySQL default datetime through phpmyadmin

MySQL - Cannot insert NULL value in column, but I have a default value specified?

Invalid default value for 'dateAdded'

可能启用了 no_zero_date and strict sql modes 的组合(取决于您的确切 MySQL 版本)防止 MySQL 使用 '0000-00-00' 作为默认值。我会使用 SET SESSION sql_mode = '...'; 命令禁用严格的 sql 模式(但记下确切的 sql 模式设置),然后我会更改 table 不使用零日期作为默认,那么你可以恢复sql模式设置。