laravel migration에 빠진 이야기 Cannot delete or update a parent row:a foreign key constraint fails
php artisan migrate:refresh
를 칠 때 다음과 같은 오류가 발생했습니다.Integrity constraint violation: 1217 Cannot delete or update a parent row: a foreign key constraint fails (SQL: drop table if exists `comments`)
부자 관계 연결 시
migration 파일
downメソッド
에서친자관계에 해당하는 부모의 표를 삭제하지 않으면 이 오류가 발생한다.
그러니까
yyyy_mm_dd_152937_create_comments_table.php
// 省略
public function down()
{
Schema::dropIfExists('posts'); //付け足した
Schema::dropIfExists('comments');
}
하지만 같은 실수를 저질렀다.(오류 문장만 있는 테이블 이름이posts와 같은 오류로 바뀝니다.)
해결 방법
조사해 보니 책상
dropの順番
이 중요한 것 같아요.하위 테이블의comments부터 순서를 먼저drop로 바꿉니다.
이번에는
posts
책상은 부모, comments
책상은 아이다.따라서 아래와 같이 기술 순서가 바뀌었다.
yyyy_mm_dd_152937_create_comments_table.php
// 省略
public function down()
{
Schema::dropIfExists('comments'); //子テーブルが先にdropされるよう順番を上にした
Schema::dropIfExists('posts');
}
드디어 통과했어...!연관된 그룹
외부 키가 있는 하위 테이블에서drop를 진행하지 않으면
이불시계의 외키 제한이 끌리는 것 같다.
子テーブル
->親テーブル
순서로 down의dropIfExists 방법을 써서 해결합니다.나는 이미 해결된 줄 알았다.
[속편] laravel의 migration에 빠진 이야기
Reference
이 문제에 관하여(laravel migration에 빠진 이야기 Cannot delete or update a parent row:a foreign key constraint fails), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/MOssan-32/items/50e199a349016caef959텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)