如何使用 Laravel 的迁移向 table 添加约束?
How to add a constraint to a table with Laravel's migrations?
假设我有一个包含列 start_date
和 end_date
的 table periods
,我想添加一个约束 start_date < end_date
.
PostgreSQL 查询将是:
ALTER TABLE periods ADD CONSTRAINT check_dates CHECK ("start_date" < "end_date");
但我想用 PHP 进行迁移。我想它看起来像这样:
Schema::table('periods', function (Blueprint $table) { $table->something(); });
...但即使使用 IntelliSense,我也猜不出要写什么而不是 "something()"。
我没有使用最新版本的 Laravel,所以如果您添加您的代码从哪个版本开始工作以及您可以在旧版本中做什么,那就太好了。
您可以 运行 像下面这样的一些原始 SQL,因为蓝图仍然不支持约束 class。
public function up()
{
DB::statement('ALTER TABLE periods ADD CONSTRAINT check_dates CHECK ("start_date" < "end_date")');
}
假设我有一个包含列 start_date
和 end_date
的 table periods
,我想添加一个约束 start_date < end_date
.
PostgreSQL 查询将是:
ALTER TABLE periods ADD CONSTRAINT check_dates CHECK ("start_date" < "end_date");
但我想用 PHP 进行迁移。我想它看起来像这样:
Schema::table('periods', function (Blueprint $table) { $table->something(); });
...但即使使用 IntelliSense,我也猜不出要写什么而不是 "something()"。
我没有使用最新版本的 Laravel,所以如果您添加您的代码从哪个版本开始工作以及您可以在旧版本中做什么,那就太好了。
您可以 运行 像下面这样的一些原始 SQL,因为蓝图仍然不支持约束 class。
public function up()
{
DB::statement('ALTER TABLE periods ADD CONSTRAINT check_dates CHECK ("start_date" < "end_date")');
}