在我的表中,我有两列和其他列。这两列都是DATETIME
类型,它们的值被前面的程序员设置为0000-00-00 00:00:00
。现在我只想添加具有 int 数据类型的列。但是每次我在phpMyAdmin中点击保存,它说前两个表的默认值无效。
所以我点击其中之一将默认值设置为无,即 registerDate
和 LastLoginDate
列。每当我在 registerDate
上单击保存时,它都会显示 LastLoginDate
具有无效的默认值,而每当我在 LastLoginDate
上单击保存时,它都会显示 registerDate
具有无效的默认值。基本上我无法更改这两列中的默认值,也无法添加任何其他列。
我确实引用了这些,但不知何故它们无助于解决我的问题:
MySQL default datetime through phpmyadmin
MySQL - Cannot insert NULL value in column, but I have a default value specified?
最佳答案
可能是 no_zero_date and strict sql modes 的组合已启用(取决于您的确切 MySQL 版本)阻止 MySQL 使用 '0000-00-00'
作为默认值。我将使用 SET SESSION sql_mode = '...';
命令禁用严格的 sql 模式(但记下确切的 sql 模式设置),然后我将更改表以不使用零日期作为default,那么你可以恢复sql模式设置。
关于mysql - 由于日期时间默认值无效,无法添加新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37854041/