본문 바로가기

Database/DB

mysql workbench 작업시 fk 칼럼 속성 변경시엔 확인을 잘해야합니다.


재미있는것을 발견( 지금까지 몰랐던것을 발견)!!



테이블간의 관계인 fk( Foreign Key Constraint) 가 설정되어 있을때 

fk 생성시 해당 칼럼을 not null 속성을 넣지 않았다. (이건 가능함)

헌데 not null  속성을 넣을려면


먼저 해당 fk 를 지운후 alter 로 notnull 속성을 넣어준후 다시 fk 속성을 넣어줘야 한다. 


여기까진 문제가 없다. 

이번엔 unsigned 속성을 넣어보려 한다. 

헌데  fk의 기본이 되는 pk 속성중에 unsigned 속성이 없다면 어떻게 되느냐?!


아까와 같이 

"먼저 해당 fk 를 지운후 alter 로 unsigned 속성을 넣어준후 다시 fk 속성을 넣어줘야 한다. "

에서 unsigned 속성을 넣은후 다시 fk 속성을 넣을 때 에러가 발생한다!!!

왜냐하면 fk의 pk의 속성엔 unsigned 속성이 없으니까!!

문제는 이때 fk는 지워졌지만 unsigned 속성은 정상적으로 들어가 있다. (fk 주기 전에 속성을 변경했으므로)


그래서 "어라?! 에러가 났는데 잘 되어 있네?!" 라고 생각하도 진행하다가 fk가 없어진거 발견.

헌데 fk를 넣을려고 하면 그냥 해당 FK넣을수 있는 칸이 생성되질 않는다. (mysql workbench 시)

이게 뭐야.. 하면서 몇시간을 허비.. 


이래서 IDE자동화가 무서운 겁니다. 

오늘의 교훈!! IDE를 너무 믿진 마세요!!



- 아마 콘솔로 작업했으면 에러 메시지 보고 바로 해결했을 경우이다.