티스토리 뷰
외래키 설정할 때, 데이터형이 일치해야 함.
수업 때,
외래키 설정이 제대로 안 먹혀서
아예 테이블 생성할 때, 외래키 설정까지 전부 해놨음. 외래키 전부 설정 성공.
그런데,
디비 연결됐는지, 디비의 데이터를 제대로 가져오는지 테스트하려고
디비의 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 컬럼 새로 생성.
데이터 입력 성공....
외래키 설정이 제대로 못한 기억 때문에,
초반에 외래키 설정 전부 해뒀는데 오히려 외래키 설정한 것때문에 더미 데이터 입력에 애먹음....
'ERROR > SQL' 카테고리의 다른 글
- Total
- Today
- Yesterday
- input type 종류
- html a tag
- empty-cell
- html base tag
- Java
- A%B
- ScriptTag
- css
- 기본선택자
- html pre
- html input type
- 외부구성요소
- CascadingStyleSheet
- html atrribute
- typeof
- html
- JavaScript
- scanner
- 스크립태그
- improt
- html layout
- text formatting
- 변수
- initialized
- caption-side
- border-spacing
- 입력양식
- BAEKJOON
- 미디어 태그
- selcetor
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |