Около 6 месяцев назад была создана проблема для заполнения базы данных Laravel. Проблема заключалась в том, как MySQL предотвратил усечение таблицы из-за ограничений внешнего ключа.
Тайор Отвелл (создатель Laravel) заявил в своем комментарии следующее:
https://github.com/laravel/framework/issues/243#issuecomment-13051091
Фиксированный. Не уверен, почему люди все еще настаивают на использовании внешних ключей с посевом. Это не более чем головная боль, поэтому Rails его даже не поддерживает.
Пожалуйста, объясните, как мне не использовать внешние ключи при заполнении.
Примерная структура таблицы:
CREATE TABLE `posts` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`title` VARCHAR(45) NOT NULL,
`body` TEXT NULL,
PRIMARY KEY (`id`)
);
CREATE TABLE `comments` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
`comment` VARCHAR(500) NOT NULL ,
`post_id` INT UNSIGNED NOT NULL ,
PRIMARY KEY (`id`) ,
INDEX `fk_comments_1_idx` (`post_id` ASC) ,
CONSTRAINT `fk_comments_1`
FOREIGN KEY (`post_id` )
REFERENCES `blog_test`.`posts` (`id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION
);
Спасибо.