Larvel 5.6.3 PHP 7.2.10
对于php artisan migrate:fresh,我得到以下错误
General error: 1215 Cannot add foreign key constraint (SQL: alter table `videos` add constraint `videos_video_identified_by_foreign` foreign key (`video_identified_by`) references `users` (`id`))用户表存储文件-> 2014_10_12_000000_create_users_table视频表迁移文件-> 2018_12_02_122553_create_videos_table
通常,当父表不存在并且我们在表中使用它的列作为外键时,就会发生这种情况,但是可以看到,应该先创建用户表,然后创建视频表,然后再创建这个错误。
用户表
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});视频
Schema::create('videos', function (Blueprint $table) {
$table->increments('video_id');
$table->text('video_link');
$table->text('video_description');
$table->string('video_category');
$table->string('video_language');
$table->unsignedInteger('video_identified_by');
$table->timestamps();
});
Schema::table('videos', function($table) {
$table->foreign('video_identified_by')->references('id')->on('users');
});发布于 2018-12-03 07:35:43
嗨,试试看,这对我来说很好。
<?php
$table->integer('video_identified_by')->unsigned();
$table->foreign('video_identified_by')->references('id')->on('user')
->onUpdate('RESTRICT')->onDelete('CASCADE');
?>然后迁移:刷新
发布于 2018-12-03 08:23:15
啊,你在表视频中修改你的身份证,试试这个。
Schema::create('videos', function (Blueprint $table) {
$table->increments('id');
$table->text('video_link');
$table->text('video_description');
$table->string('video_category');
$table->string('video_language');
$table->integer('video_identified_by')->unsigned();
$table->foreign('video_identified_by')->references('id')->on('users')
->onUpdate('RESTRICT')->onDelete('CASCADE');
$table->timestamps();
});
}
public function down()
{
Schema::dropIfExists('videos');
}发布于 2018-12-04 11:38:40
添加onDelete级联并将unsignedInteger更改为无签名
Schema::create('videos', function (Blueprint $table) {
$table->increments('video_id');
$table->text('video_link');
$table->text('video_description');
$table->string('video_category');
$table->string('video_language');
$table->unsigned('video_identified_by');
$table->timestamps();
});
Schema::table('videos', function($table) {
$table->foreign('video_identified_by')->references('id')->on('users')-
>onDelete('cascade');
});https://stackoverflow.com/questions/53589111
复制相似问题