Laravel: SQLSTATE[HY000]: Общая ошибка: 1005 не удается создать таблицу

#php #mysql #laravel #migration #migrate

#php #mysql #laravel #миграция #перенести

Вопрос:

У меня есть сводная таблица, и я хочу, чтобы при удалении записи сводная таблица также обновлялась в php artisan migrate: fresh покажите мне эту ошибку

SQLSTATE[HY000]: Общая ошибка: 1005 не удается создать таблицу test . category_post_pad (ошибка: 150 «Неправильно сформировано ограничение внешнего ключа») (SQL: изменить таблицу, category_post_pad добавить ограничение category_post_pad_post_id_foreign ссылок на внешний ключ ( post_id ) posts ( id ) при каскадном удалении)

миграция:

 public function up()
{
    Schema::create('category_post_pad', function (Blueprint $table) {
        $table->unsignedInteger('category_id');
        $table->unsignedInteger('post_id');
        $table->foreign('post_id')
            ->references('id')
            ->on('posts')
            ->onDelete('cascade');
        $table->unsignedInteger('pad_id');

    });
}
  

Комментарии:

1. Является posts . id целое число при миграции или BigInteger? Если это BigInteger, возникнет конфликт между его типом и типом внешнего ключа. Либо измените первичный ключ сообщений, либо измените для unsignedBigInteger для внешнего ключа

2. У вас будет другой тип данных для идентификатора в таблице post, а post_id имеет тип данных как usignedInteger