Неправильно сформировано ограничение внешнего ключа, Laravel - PullRequest
1 голос
/ 09 апреля 2020

Я пытаюсь перенести базу данных, но я получил ошибку, и я не уверен, почему. Не уверен, что «неправильно сформировано».

//First Table
        Schema::create('lkp_anime_lists', function (Blueprint $table) {
            $table->id();
            //more columns here
        });
//Second one
        Schema::create('lkp_cards', function (Blueprint $table) {
            $table->id();
            $table->integer('lkp_anime_list_id');
        });

        Schema::table('lkp_cards', function ($table) {
            $table->foreign('lkp_anime_list_id')
                ->references('id')
                ->on('lkp_anime_lists')
                ->onDelete('cascade');
        });

SQLSTATE [HY000]: общая ошибка: 1005 Не удается создать таблицу anime_db. lkp_cards (ошибка: 150) Ограничение внешнего ключа неправильно сформировано ") (SQL: изменить таблицу lkp_cards добавить ограничение lkp_cards_lkp_anime_list_id_foreign ссылки на внешний ключ (lkp_anime_list_id) lkp_anime_lists (id) при каскаде удаления)

Ответы [ 2 ]

3 голосов
/ 09 апреля 2020

Вместо этого следует использовать

$table->unsignedBigInteger('lkp_anime_list_id')

, поскольку первичные и внешние ключи должны быть в одном типе данных

0 голосов
/ 09 апреля 2020

Это работает для меня

$table->bigInteger('lkp_anime_list_id')->unsigned();

для Laravel версия 6 +

...