불새... 님이 쓰신 글 :
: 안녕하세요.
:
: DB 를 만들고 운영을 하고 있습니다.
:
: 그런데 Table의 Primary key를 Integer로 설정을 해 놓았습니다.
:
: Integer를 Double로 바꾸고 싶은데, IB Experts에서는 변경이 안되더군요.
:
: 혹, 변경할 수 있는 방법이 있을까요?
:
: 아니면 DB를 다시 만들어야 하는데요.
: 기존에 있는 Data를 새로운 DB로 옮길려면 , 마이그레이션을 어떤식으로 해주어야 할런지요?
:
: 답변주시면 감사하겠습니다.
:
: 수고하세요
안녕하세요. 까막입니다.
먼저 PRIMARY KEY 설정을 지우셔야 할거고요.
-- ALTER TABLE 테이블명 DROP CONSTRAINT PK명
그 후, 필드타입을 수정하면 될겁니다.
-- ALTER TABLE 테이블명 ALTER 필드명 TYPE DOUBLE PRECISION
그 이후, 다시 PRIMARY KEY 설정을 다시 잡으시고요.
-- ALTER TABLE 테이블명 ADD CONSTRAINT PK명 PRIMARY KEY(필드명)
다른 테이블에서 PK 를 참조한다면 참조키를 먼저 지워야 겠죠.
-- ALTER TABLE 테이블명(참조테이블) DROP CONSTRAINT 참조키명
참조키가 있는 것은 모두 제거해야 합니다.
그런데, DOUBLE 보다는 DECIMAL 이나 NUMERIC 이 좋지 않나요?
다른 디비도 DECIMAL 인가가 표준으로 알고 있고요. -> NUMERIC 과 좀 혼동이 되네요.
----------------------
아래분의 글에서.
다른 DB 도 마찬가지고요.
제약 조건을 없애는 경우는 대부분 다 가능합니다.
보통 없는 조건을 만들 경우에 문제가 생기는 것 - 중복값 등 - 이지, 제거는 문제될 것이 없거든요.
제가 알기로는 대부분이 아니라 전부 다 가능하다고 알고 있는데, 제가 아는게 전부가 아니다 보니
혹 불가능한 부분이 있을까 싶어서 대부분이라고 표현했습니다.
물론 각 제약 조건이 복합적으로 작용하여 제거가 되지 않을 경우는 뺀 것입니다.
순서대로 하나하나 제거해 나가면 다 가능하니까요.
혼이 살아 있을까... 대한민국.
|