首页 > 数据库 > mysql教程 > 如何在 Laravel 迁移中将时间戳列的默认值设置为 CURRENT_TIMESTAMP?

如何在 Laravel 迁移中将时间戳列的默认值设置为 CURRENT_TIMESTAMP?

Linda Hamilton
发布: 2024-12-03 02:44:14
原创
237 人浏览过

How to Set a Timestamp Column's Default Value to CURRENT_TIMESTAMP in Laravel Migrations?

使用 Laravel 迁移将时间戳列默认值设置为当前时间戳

问题:

如何创建默认值为 CURRENT_TIMESTAMP 的时间戳列使用 Laravel 模式更新 CURRENT_TIMESTAMP构建器/迁移?

答案:

使用 DB::raw()(所有数据库):

$table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP'));
登录后复制

使用 useCurrent () (Laravel 5.1.25 ):

$table->timestamp('created_at')->useCurrent();
登录后复制

仅适用于 MySQL:

在 ON UPDATE 中使用 DB::raw():

$table->timestamp('updated_at')->default(DB::raw('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'));
登录后复制

使用 useCurrent() 和useCurrentOnUpdate() (Laravel 8.36.0 ):

$table->timestamp('updated_at')->useCurrent()->useCurrentOnUpdate();
登录后复制

陷阱:

  • MySQL:

    • 从 MySQL 5.7 开始, 0000-00-00 00:00:00 不是有效日期。使用 useCurrent() 将时间戳列默认为当前时间戳,或使其可为空。
  • PostgreSQL 和 Laravel 4.x:

    • 显式指定 CURRENT_TIMESTAMP 的精度为零,以避免解析错误。 (从 Laravel 5.0 开始,精度默认设置为零。)

以上是如何在 Laravel 迁移中将时间戳列的默认值设置为 CURRENT_TIMESTAMP?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板