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

标签 mysql datetime phpmyadmin

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

所以我点击其中之一将默认值设置为无,即 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 模式设置),然后我将更改表以不使用零日期作为default,那么你可以恢复sql模式设置。

关于mysql - 由于日期时间默认值无效,无法添加新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37854041/

相关文章:

mysql - Redis如何连接MySQL服务?

nginx - SSL 的 phpMyAdmin 页面 404 Not Found [Nginx + Centos7.5]

mysql - 没有权限的用户仍然可以选择

mysql - 在sql中使用两个检查约束

mysql - 谁能告诉我为什么这个查询需要很长时间才能运行?

phpmyadmin - 新版本的 PHPMyAdmin 使我无法编辑数据

mysql - 将 TYPE 更改为 ENGINE(不同 MySQL 版本)

c - 如何以编程方式将时间从一个时区转换为另一个时区?

c# - 将时间跨度转换为日期时间添加到 C# 中的日期时间选择器

datetime - 使用 XSL 按日期对 RSS 提要排序时出现问题