[SQL] 1822 에러

starjade-k·2023년 8월 29일

SQL문으로 테이블을 만들고 테이블 필드의 pk값과 fk값을 설정해주는 과정에서
1822 에러가 났다.

1822 에러가 나는 이유는 다른 테이블의 pk값을 fk로 받아올 때 참조하는 테이블에 pk값이 없는 경우에 발생했다.

erd로 db모델링 했을 때 모든 엔티티에 pk값을 지정했었는데..?

다시보니...

다른 테이블의 pk값을 fk로 받아올 컬럼과 참조테이블에 pk 컬럼명이 동일하지 않았다.

ALTER TABLE student ADD CONSTRAINT FK_addclass_TO_student_2 FOREIGN KEY (
PlanNum
)
REFERENCES addclass (
PlanNum
);

이렇게 작성했더니 오류가 발생한 것이다.

ALTER TABLE student ADD CONSTRAINT FK_plan_TO_student_1 FOREIGN KEY (
PlanNum
)
REFERENCES plan (
PlanNum
);

이렇게 제대로 바꿨다.

처음코드 처럼 썼던 이유는 addclass 라는 테이블이 plan 테이블의 PlanNum
이라는 pk값을 fk로 받고있어서

Student 테이블에 addclass 테이블에 있는 PlanNum 을 fk값으로 받아올 수 있는줄
알았다... ㅎㅎ

profile
도와주세요

0개의 댓글