Невозможно добавить внешний ключ в таблицу БД - PullRequest
0 голосов
/ 31 марта 2019

Я пытаюсь добавить ограничение внешнего ключа в мою таблицу вопросов, но когда я запускаю php artisan migrate, я получаю следующую ошибку:

SQLSTATE [HY000]: общая ошибка: 1215 Невозможно добавить ограничение внешнего ключа (SQL: изменить таблицу questions добавить ограничение questions_best_answer_id_foreign ссылки на внешний ключ (best_answer_id) answers (id) при удалении SET NULL )

Методы «вверх» и «вниз» в моем «add_foreign_best_answer_id_to_questions_table.php»

public function up()
    {
        Schema::table('questions', function (Blueprint $table) {
            //Define the foreign key
            $table->foreign('best_answer_id')
                  ->references('id')
                  ->on('answers')
                  ->onDelete('SET NULL');
        });
    }

    public function down()
    {
        Schema::table('questions', function (Blueprint $table) {
            $table->dropForeign(['best_answer_id']);
        });
    }
}

Мой ответ Модель

 public static function boot()
    {
        parent::boot();

        static::created(function ($answer){
            $answer->question->increment('answers_count');
        });

        static::deleted(function($answer){
            $answer->question->decrement('answers_count');
        });
    }

Я пытаюсь перейти на базу данных, чтобы создать FK в таблице ответов, но я получаю сообщение об ошибке выше. Я также преобразовал всю свою базу данных, чтобы использовать движок InnoDB.

Есть ли ошибки в моем коде?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...