Laravel 迁移:添加具有现有列默认值的列
Posted
技术标签:
【中文标题】Laravel 迁移:添加具有现有列默认值的列【英文标题】:Laravel Migration: Add a column with a default value of an existing column 【发布时间】:2016-09-08 03:28:37 【问题描述】:我需要在一个活动站点的表上添加一个 last_activity 列,我必须使其默认值等于 updated_at 列值。我正在使用 laravel 5.1 和 mysql 数据库驱动程序。
Schema::table('users', function(Blueprint $table)
$table->dateTime('last_activity')->default("COLUMN VALUE OF UPDATED_AT");
);
谢谢。
【问题讨论】:
【参考方案1】:这应该可行:
Schema::table('users', function(Blueprint $table)
$table->dateTime('last_activity');
);
\DB::statement('UPDATE users SET last_activity = updated_at');
请参阅“运行一般性声明”:https://laravel.com/docs/5.1/database#database-transactions
要在创建或更新User
时强制执行此关系,您可以使用Model Events 和/或Model Observers。
【讨论】:
如果你使用$table->timestamp('last_activity')->useCurrent();
,它会在行更新时继续设置last_activity。以上是关于Laravel 迁移:添加具有现有列默认值的列的主要内容,如果未能解决你的问题,请参考以下文章