FireBird Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
파이어버드 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
IBPhoenix
FireBird Main site
볼랜드포럼 광고 모집

FireBird Q&A
[3228] Re:Primary key 변수 타입 바꾸기?
까막.윤창희 [ggamagui] 3515 읽음    2009-09-28 16:43
불새... 님이 쓰신 글 :
: 안녕하세요.
:
: 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 도 마찬가지고요.
제약 조건을 없애는 경우는 대부분 다 가능합니다.
보통 없는 조건을 만들 경우에 문제가 생기는 것 - 중복값 등 - 이지, 제거는 문제될 것이 없거든요.

제가 알기로는 대부분이 아니라 전부 다 가능하다고 알고 있는데, 제가 아는게 전부가 아니다 보니
혹 불가능한 부분이 있을까 싶어서 대부분이라고 표현했습니다.

물론 각 제약 조건이 복합적으로 작용하여 제거가 되지 않을 경우는 뺀 것입니다.
순서대로 하나하나 제거해 나가면 다 가능하니까요.



혼이 살아 있을까... 대한민국.

+ -

관련 글 리스트
3226 Primary key 변수 타입 바꾸기? 불새... 2469 2009/09/28
3228     Re:Primary key 변수 타입 바꾸기? 까막.윤창희 3515 2009/09/28
3227     Re:Primary key 변수 타입 바꾸기? letsgolee 2106 2009/09/28
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.