SQLSTATE [HY000]:常规错误:1005无法创建表project
。#sql-4b4_46
(错误号:150“外键约束格式不正确”)(SQL:更改表{ {1}}添加约束projects
外键(projects_owner_id_foreign
)引用删除级联上的owner_id
(users
)
id
答案 0 :(得分:0)
首先创建用户表,然后创建项目表并为用户分配外键。
答案 1 :(得分:0)
使用外键时必须使用unsignedBigInteger
$table->unsignedBigInteger('owner_id');
当然,您必须首先创建目标表?因此,首先创建users
,然后再创建projects
答案 2 :(得分:0)
如果主键使用的是unsignedBigInteger
,那么外键也应该使用的是unsignedBigInteger
。
Schema::create('users', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
Schema::create('projects', function (Blueprint $table) {
$table->bigIncrements('id');
$table->unsignedBigInteger('owner_id');
$table->string('title');
$table->text('description');
$table->timestamps();
$table->foreign('owner_id')->references('id')->on('users')->onDelete('cascade');
});