Я хочу добавить две таблицы, таблицу продуктов и таблицу категорий.Затем я хочу связать идентификатор категории из таблицы продуктов с первичным ключом из таблицы категорий.Вот мой код:
Код для создания моей таблицы продуктов:
public function up()
{
Schema::create('products', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('title');
$table->string('imgpath');
$table->text('description');
$table->integer('price');
$table->integer('hotItemNumber')->nullable();
$table->timestamps();
$table->softDeletes();
});
}
Код для создания моей таблицы категорий:
public function up()
{
Schema::create('categories', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('categroyName');
$table->timestamps();
});
}
Код для создания моеговнешний ключ (в отдельном файле миграции):
public function up()
{
Schema::table('products', function($table) {
$table->integer('category_id')->unsigned()->index();
$table->foreign('category_id')->references('id')->on('categories');
});
}
Я ожидал создать внешний ключ, но он выдает ошибку.
SQLSTATE [HY000]: общая ошибка: 1215 Невозможно добавить ограничение внешнего ключа (SQL: изменить таблицу products
добавить ограничение products_categoryid_foreign
ссылки на внешний ключ (categoryid
) categories
(* 1019)*))