我有一个类别表,其中有一个id和一个slug(varchar类型)列 . 我想创建一个子类别表,它将有一个category_slug(varchar类型)列,它将引用Category表中的slug列 .
我在php artisan迁移期间遇到错误 .
Schema::create('subcategories', function (Blueprint $table) {
$table->increments('id');
$table->string('category_slug')->unique();
$table->integer('product_id');
$table->foreign('category_slug')
->references('slug')->on('categories');
$table->timestamps();
});
终端中的错误是 .
[Illuminate \ Database \ QueryException] SQLSTATE [HY000]:常规错误:1005无法创建表laravel_eshopper . #sql-ee8_272(错误:150“外键约束形成错误”)(SQL:alter table tabpanes add constraint tabpanes_category_slug_foreign外键(category_slug)引用类别(slug))[PDOException] SQLSTATE [HY000]:一般错误:1005可以不要创建表laravel_eshopper . #sql-ee8_272(错误:150“外键约束形成错误”)
1 回答
是的你当然可以做到这一点见下面的例子:
假设您有类别表,如下所示:
现在您可以使用外键创建子类别,如下所示: