티스토리 뷰
카테고리 없음
[MySQL] Referencing column 'AA' and referenced column 'BB' in foreign key constraint 'FK40h442pc8wb44wkjpkec435vm' are incompatible. 오류 처리
hs_seo 2024. 7. 11. 23:28MySQL에서 발생한 오류 메시지 "Referencing column 'AA' and referenced column 'BB' in foreign key constraint 'FK40h442pc8wb44wkjpkec435vm' are incompatible."는 외래 키 제약 조건을 설정할 때 참조하고자 하는 두 열의 데이터 유형이 서로 호환되지 않음을 의미합니다.
외래 키 제약 조건을 만들거나 변경할 때, 참조하는 열(자식 테이블)과 참조되는 열(부모 테이블)의 데이터 유형이 동일해야 하며, 그 외에도 몇 가지 규칙이 있습니다.
이 오류가 발생하는 원인으로는 다음과 같은 것들이 있을 수 있습니다:
- 데이터 유형 불일치: 참조 열과 참조되는 열의 데이터 유형이 다릅니다. 예를 들어, 하나의 열이
INT
이고 다른 하나가VARCHAR
일 경우, 외래 키 제약 조건을 설정할 수 없습니다. - 문자열 길이 불일치: 문자열 데이터 유형(
CHAR
,VARCHAR
, 등)일 경우, 길이가 서로 다른 경우에도 이 오류가 발생할 수 있습니다. - 서로 다른 인코딩이나 정렬 순서 (collation): 문자열 열의 경우, 인코딩이나 정렬 순서가 다른 경우에도 호환되지 않을 수 있습니다.
해결 방법
- 데이터 유형 확인 및 일치화: 참조하는 열과 참조되는 열의 데이터 유형을 동일하게 맞춰야 합니다.
-- 예를 들어, 두 열이 모두 INT 타입이어야 함 ALTER TABLE child_table MODIFY COLUMN aa INT; ALTER TABLE parent_table MODIFY COLUMN bb INT;
- 문자열 열의 길이 맞추기: 문자열 열의 경우, 길이를 동일하게 맞춰야 합니다.
ALTER TABLE child_table MODIFY COLUMN aa VARCHAR(255); ALTER TABLE parent_table MODIFY COLUMN bb VARCHAR(255);
- 인코딩 및 정렬 순서 맞추기: 문자열 열의 인코딩 및 정렬 순서가 동일해야 합니다.
ALTER TABLE child_table MODIFY COLUMN aa VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci; ALTER TABLE parent_table MODIFY COLUMN bb VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci;
반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- HDFS
- build
- mysql
- 다이나믹
- Python
- nodejs
- error
- AWS
- yarn
- 하이브
- ubuntu
- 하둡
- 알고리즘
- Linux
- oozie
- java
- 정올
- emr
- 파이썬
- bash
- 오류
- airflow
- HIVE
- SPARK
- Tez
- S3
- SQL
- 백준
- hbase
- Hadoop
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함