#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