【发布时间】:2019-09-12 14:28:08
【问题描述】:
我尝试发布
$ php artisan db:seed
播种:RoleSeeder
在 Connection.php 第 664 行:
SQLSTATE[42000]:语法错误或访问冲突:1701 不能 截断外键约束中引用的表 (
news.users, 恒雨users_role_id_foreign外键 (role_id) 参考news.roles(id)) (SQL: 截断roles)
这是我的 Roleseeder.php 文件
<?php
use Illuminate\Database\Seeder;
use App\Role ;
class RoleSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
Role::truncate();
Role::create([
'title' => 'Students',
'description' => 'Lorem ipsum dolor.'
]);
// ....
我不明白为什么会出现这个错误..
我有这个迁移文件
Schema::table('users', function (Blueprint $table) {
$table->integer('role_id')->unsigned()->after("id")->nullable();
$table->foreign('role_id')
->references('id')->on('roles')
->onDelete('restrict');
});
【问题讨论】:
-
你为什么要截断表格两次?
-
@sietse85,我编辑了还是一样的错误
-
你也不能截断它,因为你的新闻表中存在表的键,这个错误是非常自我解释的
-
@sietse85 我不明白他的错误,先生
-
看this