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

FireBird Q&A
[1613] Re:Re:[질문] 생성된 테이블 이름을 바꿀 수 있나요?
푸른솔 [seejune] 2602 읽음    2005-10-14 08:42
간단히 될 것 같았는데 의외성이 있네요...

지금은 테이블을 막 만들어 놓은 상태에서 테스트 데이타를 입력하는 중이니까
아래 Update문장을 써도 무방할 것 같습니다.

로컬 DB는 파라독스를 쓰다가  FireBirad를 막 접해 보는 중이라 모르는 것이
너무 많습니다.

감사합니다...


박지훈.임프 님이 쓰신 글 :
: 안됩니다. 인터베이스/파이어버드에는 테이블 이름을 바꾸는 문법은 없습니다.
: 새 이름의 테이블을 만든 후 기존 데이터를 모두 넣는 방법을 쓰는 것이 일반적이구요.
:
: 시스템 테이블을 수정하면 편법적으로 가능하기는 한데...
: 연관된 모든 객체들(PK나 FK 등등)을 모두 수정해줘야 하는데 수정할 곳이 한두군데가 아닙니다.
: 예를 들어 다음과 같이 쿼리를 실행하고 데이터베이스 연결을 닫고 다시 연결하면 새 테이블 이름으로 바뀌어 있긴 합니다.
:
: update rdb$relation_fields
: set rdb$relation_name='TABLE_NEW'
: where rdb$relation_name='TABLE_OLD';
: commit;
:
: update rdb$relations
: set rdb$relation_name='TABLE_NEW'
: where rdb$relation_name='TABLE_OLD';
: commit;
:
: 그런데 테이블 자체는 이름이 바뀌지만 거기에 속했던 다른 모든 객체들이 미아가 됩니다.
: 그런데 PK나 FK 등은 시스템 테이블 여기저기에 들어가있는 곳이 많기 때문에 일일이 찾아서 수정하는 것이 너무너무
: 번거롭습니다.
:
: 그래도 테이블의 데이터가 너무너무너무! 많아서 꼭 이 방법을 써야 겠다면, PK나 FK 등 테이블에 의존적인 객체들을
: 모두 드랍시킨 후 위 방법으로 테이블 이름을 바꾸고 객체들을 다시 생성해주는 것이 최선일 겁니다.
:
: 마지막으로... 이 방법은 절대로 안전하지 않습니다. 미리 백업은 필수입니다.
:
: 그럼...
:
:
: 푸른솔 님이 쓰신 글 :
: : 이미 만들어진 테이블 이름을 바꿀려고 하는데 방법을 잘 모르겠네요...
: : 메뉴에서 Save as Table 이런 것이 있을 줄 알았는데 없군요...
: : 툴은 IBExpert를 사용합니다.
: :
: : 필드들이 많아서 새로 만들기에는 너무 힘이 들고 또 오류가 있을 가능성도 있고......
: :
: : 혹시나 해서 아래 명령어를 써 봤는데.. 역시나 이군요. 오라클에서는 되는디...
: : alter rename aaa to bbb 
: :
: : 방법이 있을 것 같은데...
: : 조언을 부탁드립니다.

+ -

관련 글 리스트
1610 [질문] 생성된 테이블 이름을 바꿀 수 있나요? 푸른솔 1878 2005/10/13
1611     Re:[질문] 생성된 테이블 이름을 바꿀 수 있나요? 박지훈.임프 2099 2005/10/13
1613         Re:Re:[질문] 생성된 테이블 이름을 바꿀 수 있나요? 푸른솔 2602 2005/10/14
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.