当前位置: 首页 > 知识库问答 >
问题:

MySQL修改了时间戳字段的“默认”和“额外”值

柯曦
2023-03-14

我正在使用Laravel迁移创建用户表。它在处创建了,并在处更新了使用$table创建的字段-

生成的表结构如下所示;

为什么两个时间戳字段都有默认值?就我而言,Laravel迁移$table-

此外,created_at字段的Extra已设置为更新CURRENT_TIMESTAMP时的。我不认为Laravel迁移设置这一点。

有人知道MySQL为什么会这样做吗?我正在使用MySQL 5.7。顺便说一句。

更新:自Laravel v5起。2.24时间戳在默认情况下可为空,因此这不再是问题-提交


共有1个答案

钱稳
2023-03-14

这与MySQL版本和严格模式之间的差异有关,特别是

目前的解决方案似乎是使用$table-

$table->timestamp('created_at')->useCurrent();
$table->timestamp('updated_at')->useCurrent();

 类似资料:
  • 错误1067(42000):“updated”的默认值无效 我想这是因为的精度只有秒。 如何将当前时间设置为具有小数部分的的默认值?

  • 问题内容: 我有以下sql create语句 给出以下错误 这是什么错误? 问题答案: 那是由于服务器SQL模式-NO_ZERO_DATE。 根据参考:-在严格模式下,不允许将其作为有效日期。您仍然可以使用 IGNORE 选项插入零日期。如果不在严格模式下,则接受日期,但会生成警告。

  • 问题内容: 如何将列的默认值从“无”更改为其他值?例如,如果我在创建行时未指定日期,则希望我的日期的默认值是0000-00-00。 我在phpMyAdmin中了解这一点,但是我不确定如何通过命令提示符来做到这一点。 我也了解在添加列时如何执行此操作。但是,我所有的列均已制成,并且其中一些包含数据。 通过搜索,我找到了这条线,但是我不确定那是我想要的吗? 问题答案: 使用 ALTER TABLE 来

  • 问题内容: 我正在使用美国/纽约时区。在秋季,我们“退后”一个小时-实际上是在凌晨2点“获得”一个小时。在过渡点发生以下情况: 它是01:59:00 -04:00, 然后一分钟后变成:01 :00 : 00 -05:00 因此,如果您只是简单地说“ 1:30 am”,那么您是指第一次还是1:30滚动还是第二次就不清楚了。我正在尝试将计划数据保存到MySQL数据库,并且无法确定如何正确保存时间。 这

  • 本文向大家介绍MySQL修改默认字符集编码的方法,包括了MySQL修改默认字符集编码的方法的使用技巧和注意事项,需要的朋友参考一下 今天又遇到修改MySQL默认字符集编码的问题,折腾了半天解决了,赶快记录下来,以后就不用每次折腾了。 查看MySQL字符集的命令是“show variables like '%char%';”。 以MySQL5.6为例,默认的字符集为: 在工作中需要将字符集全部修改为

  • 问题内容: 我正在使用节点/快速服务器。express的默认超时为120,000 ms,但这对我来说还不够。当我的响应达到120,000 ms时,控制台将记录日志,并且页面显示错误,因此我想将超时设置为更大的值。我该怎么办? 问题答案: 考虑到问题中的日志,我假设您正在使用。关键是在服务器上设置属性(以下将超时设置为一秒钟,使用您想要的任何值): 如果您不使用express,而仅使用普通节点,则原