PK를 FK로 바꾸기 질문 0 2 1,759

by BadGod [SQL Query] [2016.10.07 15:03:39]


안녕하세요.

PK:프리머리키

FK:포린 키

테이블명 컬럼명 변경전(PK/FK) 변경후(PK/FK)
D_TABLE D_ID PK PK
  D_NAME    
E_TABLE E_ID PK PK
  D_ID PK FK
  E_NAME    

1) 위 처럼 E_TABLE의 D_ID 컬럼의 PK(프리머리 키)를 FK(포린 키)로 바꾸고 싶은데 어떻게 바꾸나요?(코드부탁합니다)

2) 데이터가 있다고 했을 때 이거 바꿨을 때 다른 영향이 생기나요?
3) 어떻게 대처해야 하나요?

4) 기타 주의사항은요?

 

감사합니다.

 

by 마농 [2016.10.07 16:23:14]

2개 컬럼이 결함된 PK 인 경우
한개로 바꾸는 경우 키가 중복될 가능성 있습니다.


예) (학년,반)으로 구성된 PK 에서 값이 다음과 같을 때 (1학년1반), (1학년2반)
PK 를 학년만으로 조정 할 수 없습니다. 반을 빼면 1학년이 2건으로 중복됩니다.


결합PK 를 단일 PK 로 바꾸는게 의도하는 바가 맞는지부터 확인해야 합니다.
PK 는 그대로 둔채 FK 를 추가하길 원하는 것일 수 있습니다.
FK 를 추가하는 것은 PK 를 바꾸는 것과 상관 없습니다.


by BadGod [2016.10.07 16:56:12]

항상 좋은말씀 감사합니다 마농님.

수고하세요~...

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입