티스토리 뷰

 

외래키 설정할 때, 데이터형이 일치해야 함.

 

수업 때,

외래키 설정이 제대로 안 먹혀서

아예 테이블 생성할 때, 외래키 설정까지 전부 해놨음. 외래키 전부 설정 성공.

 

그런데,

디비 연결됐는지, 디비의 데이터를 제대로 가져오는지 테스트하려고

디비의 tbl_board에 더미 데이터를 넣으려고 했는데 에러뜸.

 

[에러]

23:37:19 insert into tbl_board(title, content, writer) values('ti01', 'content01', 'w01') Error Code: 1452. Cannot add or update a child row: a foreign key constraint fails (`wsywebdb`.`tbl_board`, CONSTRAINT `board_writer_fk` FOREIGN KEY (`writer`) REFERENCES `tbl_member` (`id`)) 0.140 sec

 

[원인]

테이블 tbl_board의 writer(열)이 테이블 tbl_member의 PK인 id를 참조하는 외래키 설정되어 있기 때문에,

tbl_board의 writer에 데이터를 넣으려면 id에도 같은 값이 들어가야 하는 듯. 참조 무결성을 지키기 위해.

 

[해결]

두 개의 테이블에 동시에 데이터를 넣었어야 했나? 그럴 수 있나? ← 이 방법으로 안 해서 모름.

 

→ writer에 설정된 외래키를 삭제한 뒤 데이터를 넣으려고 했는데, 외래키 삭제가 안 됨.

→ 테이블 설정에서 writer 컬럼을 강제적으로 삭제(Delete select) 후 writer 컬럼 새로 생성.

 

데이터 입력 성공....

 

외래키 설정이 제대로 못한 기억 때문에,

초반에 외래키 설정 전부 해뒀는데 오히려 외래키 설정한 것때문에 더미 데이터 입력에 애먹음....

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함