Миграция Laravel Ошибка №: 150 «Ограничение внешнего ключа сформировано неправильно» - PullRequest
0 голосов
/ 16 февраля 2019

У меня есть таблица 'posts' и таблица 'Arrival', которая ссылается на 'flightno' (в формате текстовой строки) в качестве внешнего ключа.Однако, когда я запускаю миграцию Laravel, я получаю страшную ошибку:

[Illuminate \ Database \ QueryException] SQLSTATE [HY000]: общая ошибка: 1005 Не удается создать таблицу atc. #sql-2350_84 (errno: 150 «Ограничение внешнего ключа сформировано неправильно») (SQL: изменить таблицу arrival добавить ограничение arrival_flightno_foreign ссылки на внешний ключ (flightno) posts (flightno))

[PDOException] SQLSTATE [HY000]: общая ошибка: 1005 Невозможно создать таблицу atc. #sql-2350_84 (ошибка: 150 «Неправильно сформировано ограничение внешнего ключа»)

Сообщений

Schema::create('posts', function (Blueprint $table) {
    $table->increments('id');
    $table->string('flightno');
    $table->string('flighttype');
    $table->string('toa');
    $table->string('doa');
    $table->string('runway');
    $table->string('route');
    $table->string('parking');
    $table->timestamps();
}); 

Прибытие

Schema::create('arrival', function (Blueprint $table) {
    $table->increments('id');
    $table->string('flightno');
    $table->string('cleaning');
    $table->string('rampservice');
    $table->string('waste');
    $table->string('deicing');
    $table->foreign('flightno')->references('flightno')->on('posts')->onDelete('cascade');
    $table->timestamps();
});

1 Ответ

0 голосов
/ 29 апреля 2019

Мне кажется, что вы забыли поставить индексы и установить длину flightno столбцов.Это должно работать:

Сообщений

Schema::create('posts', function (Blueprint $table) {
    // ...
    $table->string('flightno', 30)->index();
    // ...
}); 

Прибытие

Schema::create('arrival', function (Blueprint $table) {
    // ...
    $table->string('flightno', 30)->index();
    // ...
}); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...