• 티스토리 홈
  • 프로필사진
    Song hyun
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
Song hyun
  • 프로필사진
    Song hyun
    • 분류 전체보기 (780)
      • 백준 (0)
      • 영어 (2)
        • Diary (0)
        • Toast Masters (2)
      • 메모 (13)
      • 설치 메뉴얼 (30)
      • Java (178)
      • MySQL (60)
      • JSP (67)
      • Springboot (46)
      • HTML,CSS, JS (71)
        • HTML (8)
        • CSS (12)
        • JavaScript (37)
        • HTML&CSS 스터디 (13)
      • C++ (7)
      • Linux (7)
      • JPA (34)
      • Kotlin (2)
      • Flutter (42)
      • Error Note (39)
      • 디자인 패턴 (12)
      • 디지털논리회로 (4)
      • 데이터베이스 시스템 (8)
      • 알고리즘 (7)
      • 운영체제 (3)
      • 이산수학 (3)
      • 인공지능 (1)
      • 자료 구조 (14)
        • 기본 개념 (14)
        • 자료구조 스터디 (0)
      • 💡My project (76)
        • 팩맨 : Java Swing 게임 제작 프로젝트 (6)
        • 네이트톡 : Java 소켓 통신 프로젝트 (4)
        • 포켓옥션 : HikariCP&JDBC CRUD 프.. (3)
        • 이지 부산 : BDIA-Devton 2024 프로.. (20)
        • 그린 유니버시티 : JSP를 사용한 학사관리 프로.. (1)
        • 애드 포커 : 웹 소켓과 Spring을 사용한 카.. (1)
        • 셸위 : 게임 친구 매칭 사이트 (21)
        • 다모아 : 개발자 중개 플랫폼 (20)
      • 📗스터디 (13)
        • CNN : 웹개발 스터디 (10)
        • Node&React로 유튜브 사이트 만들기 (3)
      • 📙독서 및 강연 기록 (36)
        • 강연 (14)
        • 독서 (22)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • [Error note] 31. MySQL 참조 테이블 데이터 삽입 오류 : Cannot add or update a child row: a foriegn key constraint fails
        2024년 05월 29일
        • Song hyun
        • 작성자
        • 2024.05.29.:38
        728x90
        반응형

        [Error note] 31. MySQL 참조 테이블 데이터 삽입 오류 : Cannot add or update a child row: a foriegn key constraint fails


         

        물건을 구매한 고객의 정보가 저장되는 usertbl, 그리고 고객이 구매한 물건의 정보가 저장되는 buytbl.

        buytbl에 '홍길동','운동화',30,2라는 값을 입력하던 도중, 에러가 발생했다.

         

         

        작성한 코드와 에러 메세지를 읽어보자. 

        Error Code: 1452. Cannot add or update a child row: a foriegn key constraint fails

        -- 데이터 입력하기
        
        insert into usertbl(userName,birthYear,addr,mobile) 
        values('이승기',1987,'서울','011-1111-111'),
        	  ('김경호',1987,'전남','019-333-333'),
              ('윤종신',1987,'경남',''),
              ('임재범',1987,'서울','011-222-222'),
              ('은지원',1987,'경북','011-444-444'),
              ('조관우',1987,'경기','011-555-555'),
              ('김범수',1987,'경남','011-1111-111'),
              ('조용필',1987,'경기','011-1111-111'),
              ('바비킴',1987,'서울','011-1111-111'),
              ('성시경',1987,'경남',null);
        
        -- buyTBL 데이터 한번에 입력 
        insert into buytbl(userName, prodName, price, amount)
        values  ('김범수', '운동화', 30, 2),
        	      ('김범수', '노트북', 1000, 1),
                ('조용필', '모니터', 200, 1),
                ('바비킴', '모니터', 200, 5),
                ('김범수', '청바지', 50, 3),
                ('바비킴', '메모리', 80, 10),
                ('성시경', '책', 15, 5),
                ('은지원', '책', 15, 2),
                ('은지원', '청바지', 50, 1),
                ('바비킴', '운동화', 30, 2),
                ('은지원', '책', 15, 1),
                ('바비킴', '운동화', 30, 2);
        
        select*from buytbl;
        
        insert into buytbl(userName,prodName,price,amount)
        values('홍길동','운동화',30,2);
        
        desc usertbl;
        select * from usertbl;
        delete from usertbl;

         

         

        buytbl은 usertbl에서 userName이라는 외래키(Foriegn Key)를 받아와 작성되는 테이블이다.

        즉, usertbl에 해당 데이터(이름)이 존재하지 않으면, 외래키로 받아올 수 없는 것이다.

         

        위에서 작성한 데이터는 '홍길동'이지만,

        usertbl에 입력한 코드들을 살펴보면 '홍길동'이라는 userName을 가진 데이터는 usertbl에 없다는 걸 알 수 있다.

         

        이번에는 usertbl에 존재하는 '바비킴'을 사용해 데이터를 입력해보았다.

        아까와는 달리 성공적으로 입력되었음을 알 수 있다.

         

        RDBMS의 개념, 외래키-기본키의 관계에 대해 다시 한 번 생각하게 된 오류였다!

        728x90
        반응형

        'Error Note' 카테고리의 다른 글

        [Error Note] 33. MySQL 띄어쓰기 오류 : Error Code 1630. FUNCTION - does not exist.  (0) 2024.06.07
        [Error Note] 32. MySQL 객체 중복 오류: Duplicate entry  (0) 2024.06.04
        [Error note] 30. MySQL 중복 데이터 에러 : Duplicate entry  (0) 2024.05.29
        [Error Note] 29. MySQL 데이터 입력 에러 : Data too long for column  (0) 2024.05.29
        [Error Note] 28. 소켓 통신 실행 중 오류 : Address already in use  (0) 2024.05.23
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바