phpMyAdminを使ってlaravelで外部キー制約をつけようと指定いるのですが、
SQLSTATE [42S21]:列はすでに存在します:1060列名 'review_id'が重複しています。
と出てきています。
php artisan migrateをしたり、php artisan migrate:refreshをするとSQLSTATE [42S21]のエラーが出てきます。
データベースを消したりしても出てきます。
review_idに外部キーを設定したいのですがどうしたらいいのでしょうか?
エラー内容
SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name 'review_id' (SQL: create table comments
(id
bigint unsigned not null auto_increment primary key, comment
text not null, review_id
bigint unsigned not null, created_at
timestamp null, updated_at
timestamp null, review_id
bigint unsigned not null) default character set utf8mb4 collate 'utf8mb4_unicode_ci')
laravel
1<?php 2//2020_06_17_233958_create_comments_table.php 3use Illuminate\Database\Migrations\Migration; 4use Illuminate\Database\Schema\Blueprint; 5use Illuminate\Support\Facades\Schema; 6 7class CreateCommentsTable extends Migration 8{ 9 /** 10 * Run the migrations. 11 * 12 * @return void 13 */ 14 public function up() 15 { 16 Schema::create('comments', function (Blueprint $table) { 17 $table->bigIncrements('id'); 18 $table->text('comment'); 19 $table->unsignedBigInteger('review_id'); 20 $table->timestamps(); 21 22 $table->foreignId('review_id')//外部キー、reviewが消えたらコメントも消える 23 ->constrained() 24 ->onDelete('cascade'); 25 }); 26 } 27 28 /** 29 * Reverse the migrations. 30 * 31 * @return void 32 */ 33 public function down() 34 { 35 Schema::dropIfExists('comments'); 36 } 37}
laravel
1<?php 2//2020_06_17_233959_create_reviews_table.php 3use Illuminate\Database\Migrations\Migration; 4use Illuminate\Database\Schema\Blueprint; 5use Illuminate\Support\Facades\Schema; 6 7class CreateReviewsTable extends Migration 8{ 9 /** 10 * Run the migrations. 11 * 12 * @return void 13 */ 14 public function up() 15 { 16 Schema::create('reviews', function (Blueprint $table) { 17 $table->bigIncrements('id'); 18 $table->string('title'); 19 $table->timestamps(); 20 }); 21 } 22 23 /** 24 * Reverse the migrations. 25 * 26 * @return void 27 */ 28 public function down() 29 { 30 Schema::dropIfExists('reviews'); 31 } 32} 33
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/19 04:55