mysql db 실습

김한솔·2022년 11월 3일
0

mysql에 users 테이블과 posts 테이블의 데이터를 지우고

다시 만들면서 연습을 하던 중 users에 데이터를 생성하고
posts 데이터를 생성하려 하는데 에러가 발생했다.

ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`westagram`.`posts`, CONSTRAINT `posts_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`))

posts1번 게시물의 FK인 user_id를 1로 주었는데 FK연결에 실패했다.
방금 users 데이터를 생성하고 query ok를 확인했기에 의아해서 확인해봤다.


id가 3번부터 만들어져 있었다.

delete를 이용해서 users테이블의 데이터를 지우고 다시 만들었는데

id가 7번이었다. 안에 있는 데이터는 삭제해도 로그가 남아서 기존에 있던 id에서 1을 추가해서 데이터를 만들어 주는 것 같다.

그래서 이번엔 truncate를 사용해서 users테이블의 데이터를 지우고 다시 만들어봤다.

set foreign_key_checks = 0;
truncate users;
 set foreign_key_checks =1;
 //FK를 사용해서 다른 테이블의 데이터와 연결되어 있을 경우 삭제 시도 시 에러가 난다. 잠시 FK체크를 풀어주고 데이터 삭제 후 다시 FK체크를 되돌려준다.


드디어 id가 1부터 만들어졌다.

profile
개린이입니다.

0개의 댓글