2017-12-27 95 views
0

db2 luw 버전 10.5에는 컬럼 정의가있는 테이블이 있습니다. 열 OPTCOUNTER 및 COMPNAME의 순서를 변경하려고합니다.db2 luw에서 테이블의 컬럼 순서 변경

테이블 삭제 및 다시 작성과 별도로 수행 할 수있는 방법이 있습니까?

       Data type      Column 
Column name      schema Data type name  Length  Scale Nulls 
------------------------------- --------- ------------------- ---------- ----- ------ 
DATABASEVENDOR     SYSIBM VARCHAR      32  0 Yes 
EDITION       SYSIBM VARCHAR      16  0 Yes 
VERSION       SYSIBM SMALLINT      2  0 Yes 
RELEASE       SYSIBM SMALLINT      2  0 Yes 
MOD        SYSIBM SMALLINT      2  0 Yes 
FIXPACK       SYSIBM SMALLINT      2  0 Yes 
OPTCOUNTER      SYSIBM SMALLINT      2  0 Yes 
COMPNAME      SYSIBM VARCHAR      32  0 No 

    8 record(s) selected. 
+0

원하는 순서로 열이있는보기를 만듭니다. – danny117

답변

0

첫 번째 이유는 무엇입니까? 먼저 열 순서를 변경 하시겠습니까? 테이블 레이아웃에서 이것은 고정 길이 컬럼 다음에 가변 길이 컬럼을 가지고 있기 때문에 괜찮을 것으로 보인다.

둘째, 열 이름을 명시 적으로 명시한 SELECT을 단순히 사용하지 않고 ...? 경우

select DATABASEVENDOR, EDITION, VERSION, RELEASE, MOD, FIXPACK, COMPNAME, OPTCOUNTER 
from MYTABLE 

당신은 정말, 열 순서를 변경 ALTER TABLE 먼저 DROP의 optcounter를 사용하여 다음 다시 추가합니다.

+0

감사합니다. 이 테이블 정의를 다른 데이터베이스와 동기화하고 싶습니다. 다른 데이터베이스 테이블에서 COMPNAME name 열이 먼저오고 OPTCOUNTER 열이옵니다. – Lakshmikanth

+0

그런 경우 전체 테이블을 삭제하고 다시 만들거나 ALTER TABLE을 사용하여 열 optcounter를 삭제하고 추가 할 수 있습니다. –

+0

@Lakshmikanth - 여기서는 data_henrik를 반향시켜야합니다 : 열 순서가 관련성이 없어야하며 구현 세부 사항을 고려해야합니다. 데이터베이스를 나열된 순서대로 ** 저장할 필요가 있는지 확신 할 수 없습니다 (일부 최적화 가능성이 우선 됨). 그리고 열 목록을 명시 적으로 나열해야합니다. 그렇지 않으면 열 목록이 다소 _undefined_입니다. 예를 들어이 이름을 변경하면 열을 나열하지 않은 사람이 큰 놀라움을 선사합니다. (잘하면 오류가 발생합니다.) –