以下のように、[]内にunique制約を付けたいカラム名を並べればOK。
マイグレーションファイル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
public function up() { Schema::create('favorites', function (Blueprint $table) { /* 複数カラムにunique制約を設定する方法 */ $table->unique(['user_id', 'post_id'], // []内にunique制約を付けたいカラム名を並べる 'unique_user_id_post_id'); // 第2引数はindex名(省略可能) /* 【参考】1つのカラムにunique制約を設定するときは以下のような方法で可能 */ // $table->integer('column_name')->unique(); //カラム名を設定するときにunique()を記述する // $table->unique('column_name'); //index名を省略した場合、index名は自動で決まる // $table->unique('column_name' , 'index_name'); // カラムが1つのときは[]はなくても良い // $table->unique(['column_name'], 'index_name'); // カラムが1つのときに[]を使っても良い }); } |
詳細はLaravelの日本語ドキュメントを参照。
インデックス – Laravel 5.8 データベース:マイグレーション
https://readouble.com/laravel/5.8/ja/migrations.html#indexes
コメントを残す