当我试图更改表格时,它显示了错误:

ERROR 1067 (42000): Invalid default value for 'created_at'

我在谷歌上搜索这个错误,但我发现的只是他们试图改变时间戳,所以它发生了.然而,在这里我试图添加一个新列,我得到了这个错误:

mysql> ALTER TABLE investments ADD bank TEXT;
ERROR 1067 (42000): Invalid default value for 'created_at'

我的表的最后两列是created_atupdated_at.

以下是我的桌子 struct :

enter image description here

推荐答案

问题是因为sql_modes.

show variables like 'sql_mode' ; 

并删除sql_模式"NO_ZERO_IN_DATE,NO_ZERO_DATE"以使其正常工作.

您可以通过命令将sql_模式全局设置为root:

set global sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

Mysql相关问答推荐

客户跨订阅的跨时间线计数

为分组记录MySQL取取值为TRUE的单行

使用Check查看过go 两个月是否完成了IRM Meetup

为什么MySQL不同版本的值会变化?

为什么我的 SQL 查询不更新 Node.js 和 MySQL 中用户以外的用户属性?

在带有 D.I 的 .NET AWS Lambda 中使用 MySql.Data

MySQL 8.0.30 正则表达式词匹配特殊字符

如何在 MYSQL 中使用多个表进行插值

MySQL UPDATE 锁会因为连续的 SHARE 锁而饿死吗?

MySQL REGEXP 在没有 BINARY 模式的情况下区分大小写?

MySQL 5.6 DATETIME 不接受毫秒/微秒

MySQL使用多列 Select 重复记录

在 Android 上运行 AMP (apache mysql php)

你如何在 Node.js 中模拟 MySQL(没有 ORM)?

INSERT ... 使用 WHERE 进行重复的密钥更新?

基于字符串动态创建 PHP 对象

按 15 分钟间隔对 mysql 查询进行分组

如何将 MySQL 查询结果存储在另一个表中?

与 MySql 的连接正在自动中止.如何正确配置Connector/J?

将数据库从 Postgres 迁移到 MySQL