MySQL, Oracle

May 12, 2021 - MySQL 각종 에러 대처

jongviet 2021. 5. 12. 23:17

*5월12일

-dBeaver를 이용해서 MySQL 실습을 했는데, query 하나 실행 시키기 무섭게 떠오르는 error들... eclipse처럼 친절하지도 않아서 모든 에러를 구글링해서 찾아야했다. 왜 DB 전문가가 돈을 많이 버는지 알겠다.

-오늘 하루 부딪힌, 나중에 보면 별게 아닐 수도 있는 에러들을 정리했다.

 

1)Error Code: 1215. Cannot add foreign key constraint

-Foreign Key(이하 FK) 생성이 실패하면서 생기는 오류다. 에러 발생 시 하기 항목들을 살펴봐야 한다.

 

1-1)오타, syntax error

1-2)FK로 지정하는 칼럼이 Primary Key(이하 PK)인지 여부 확인해야함. PK만 FK가 될 수 있음. 즉, PK만 다른 테이블에 참조 줄 수 있다는 것.

1-3)parent & child 칼럼이 같은 타입인지 확인

1-4)On DELETE SET NULL로 지정 시, child 테이블이 not null이면 안됨.

 

2)ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constraint fails

-FK의 특성으로 데이터를 보호하기 위해 테이블 삭제를 막는 경우. 하기와 같이 순서대로 진행해주면 됨.

 

SET foreign_key_checks = 0; -> drop table  -> SET foreign_key_checks = 1;

 

3)SQL Error [1068] [42000]: Multiple primary key defined

-한 테이블에 PK를 2개 이상 지정하려 할때 발생. 테이블 당 하나임!

 

 

4)SQL 오류 (1452): Cannot add or update a child row: a foreign key constraint fails

-자식 테이블에 데이터가 존재 할 경우, FK 설정을 할 수 없다. 이유는 자식테이블 기 입력 데이터가 날아 가기 때문.

 

 

5)Error Code: 1136. Column count doesn't match value count at row 1

-존재하는 칼럼의 수와 입력하는 데이터의 수를 비교해볼 것.

 

 

FK 설정용 수업 예제... 이거 하나 연결하려고 수많은 에러를 만났다.