За последние 24 часа нас посетил 21931 программист и 988 роботов. Сейчас ищут 654 программиста ...

В чем может быть ошибка при добавлении foreign key ?

Тема в разделе "Laravel", создана пользователем asker234, 22 апр 2019.

  1. asker234

    asker234 Новичок

    С нами с:
    31 мар 2018
    Сообщения:
    4
    Симпатии:
    0
    Есть вот такая миграция:
    Код (Text):
    1. Schema::create('LessonEventRateCriterion', function (Blueprint $table) {
    2.             $table->increments('Id');
    3.             $table->string('Name', 255);
    4.             $table->boolean('Active');
    5.             $table->boolean('isDeleted')->default(0);
    6.             $table->integer('OrderIndex');
    7.             $table->dateTime('CreatedAt')->nullable();
    8.             $table->dateTime('UpdatedAt')->nullable();
    9.         });
    10.  
    11.         Schema::create('LessonEventRateCriterionType', function (Blueprint $table) {
    12.             $table->increments('Id');
    13.             $table->integer('LessonEventRateCriterionId')->nullable();
    14.             $table->enum('LessonType', ['intro', 'regular']);
    15.  
    16.             $table->foreign('LessonEventRateCriterionId')->references('Id')->on('LessonEventRateCriterion')->onDelete('set null');
    17.         });
    но при запуске не могу создать внешний ключ на таблицу LessonEventRateCriterion, по типу совпадают, для ключа LessonEventRateCriterionId в чем может быть проблема ?

    SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint (SQL: alter table `LessonEventRateCriterionType` add constraint `lessoneventrate
    criteriontype_lessoneventratecriterionid_foreign` foreign key (`LessonEventRateCriterionId`) references `LessonEventRateCriterion` (`Id`) on delete set
    null)

    SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.553
    Симпатии:
    1.754
    increments() в Laravel создаёт unsigned integer, а не просто integer, поэтому типы и не совпадают.