작성
·
879
답변 3
1
1
1. 근데 새로운 컬럼을 추가했으면 기존데이터에는 해당 컬럼의 값이 null인게 맞지않나요..? 그럼 어떻게 돼야하는데요..?
2. create같은 경우엔 서버 시작시점에 table을 다 날려요 그얘기는 db를 server모드로 해놔도 껏다키면 데이터가 다 날라간다는얘긴가요?
1. 말씀하신 것처럼 그것이 로직 상으로는 맞습니다만, 추가한 컬럼에 관련해서 데이터를 검사하거나 가져오는 경우를 생각해봅시다.
이런 경우에 컬럼 추가 이후에 들어가는 데이터들이야 문제 없겠지만 기존 데이터들을 새로운 함수에서 사용할 때는 예측못한 문제가 생길 수도 있겠지요?
실무를 진행하다보면 여러 사람들과 일을 하게 됩니다. 모든 사람들이 데이터 구조나 이전 작업내용을 파악하고 있는 게 아닙니다. 그렇기에 가급적이면 이러한 테이블 구조의 변경 등은 최소화되는 것이 좋습니다.
2. 답변을 드릴 수도 있지만 때로는 직접 한 번 해보는 편이 더 좋을 때도 있는 법입니다.
감사합니다
1
운영장비의 경우 기존에 이미 데이터가 있는 경우이기에 update를 설정함으로 인해서
테이블의 구성이 변경될 경우 예상치 못한 문제들이 발생할 수 있습니다.
예를 들어서 기존에 데이터가 들어있던 컬럼이 alter 문으로 인해서 그 컬럼이 삭제되는 경우라던지
혹은 새로운 컬럼을 추가하였는데 기존에 있던 데이터들의 경우 해당 컬럼에 값을 넣어주지 않았기 때문에
null 값으로 설정이 되게 될텐데 이로 인해서 또 문제가 발생할 수도 있겠지요?
출력되는 로그를 한 번 확인해보는 것이 좋을 듯 싶네요,
drop table cascade 가 아니라 drop table로 되어있었다면
외래키 등으로 엮여있는 테이블이 먼저 drop 되지 않았을 경우에는
제대로 drop 이 안되었을 수 있습니다.