May 12, 2021 - MySQL 각종 에러 대처
*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
-존재하는 칼럼의 수와 입력하는 데이터의 수를 비교해볼 것.