Oracle 열을 첫 번째 위치로 이동
Oracle 테이블의 열을 마지막 위치에서 첫 번째 위치로 이동할 수 있는 방법이 있습니까?누군가 ID 열을 삭제하고 다시 만들었습니다.그래서 이제 이것은 끝에 와있는데, 이것은 우리의 PHP 스크립트 중 일부가 첫 번째 열을 식별자로 사용하고 있기 때문에 문제가 됩니다. (이 기본 객체를 사용하는 100개 이상의 다른 모델과 함께 하나의 추상 모델...)
참고 항목:
Oracle FAQ는 다음과 같이 말합니다.
Oracle은 기존 테이블 끝에만 열을 추가할 수 있습니다.
테이블을 다시 만들어야 합니다.
RENAME tab1 TO tab1_old;
CREATE TABLE tab1 AS SELECT id, <the rest of your columns> FROM tab1_old;
테이블의 열의 논리적 순서를 수정하는 가장 간단한 방법은 테이블 이름을 바꾸고 "오른쪽" 열 위치로 보기를 만드는 것입니다.
ALTER TABLE your_table RENAME TO your_table_t;
CREATE VIEW your_table AS SELECT <columns in the right order> FROM your_table_t;
-- grants on the view (the same as the table)
GRANT ** TO ** ON your_table;
응용프로그램은 열이 "올바른" 위치에 있는 것처럼 동작합니다.물리적인 구조는 손대지 않아도 됩니다.
Oracle 12c에서는 논리적으로 열을 재정렬하는 것이 더 쉬워졌습니다.열을 보이지 않게/보이지 않게 하여 얻을 수 있습니다.보이지 않는 열을 보이지 않는 열로 변경하면 열이 순서대로 마지막에 나타납니다.
wxyz 테이블 만들기:
CREATE TABLE t (
w INT,
y VARCHAR2,
z VARCHAR2,
x VARCHAR2
);
x 열을 가운데로 재배열합니다.
ALTER TABLE wxyz MODIFY (y INVISIBLE, z INVISIBLE);
ALTER TABLE wxyz MODIFY (y VISIBLE, z VISIBLE);
DESCRIBE wxyz;
Name
----
w
x
y
z
(데이터를 잃지 않도록 이름 바꾸기/임시 테이블을 통해) 테이블을 다시 만드는 것이 제가 아는 유일한 방법입니다.
단순히 칼럼 순서만 바꾸는 것은 불가능하다고 생각합니다.
데이터/열이 많지 않은 경우 원하는 순서대로 열 이름을 바꿀 수 있습니다.그럼 그냥 '여기 당신의 테이블 이름'에서 *를 삭제하세요.아직 많은 레코드를 삽입하지 않았기 때문에 이것은 저에게 좋은 해결책이었습니다.
보기를 통해 테이블에 액세스하여 애플리케이션 기술에 중요한 논리적 순서를 손쉽게 재배치할 수 있습니다.
오라클에서 열을 이동할 수 없습니다.마지막 위치에서 생성됩니다.원하는 사람이 있다면 보기를 만들거나 새 테이블을 만들어야 합니다.
나는 항상 이것을 사용합니다.
ALTER TABLE MOVE COLUMN column_name TO ordinal_position;
언급URL : https://stackoverflow.com/questions/1824654/oracle-move-column-to-the-first-position
'sourcecode' 카테고리의 다른 글
로컬 JSON 파일에서 angularjs로 데이터 가져오기 (0) | 2023.10.15 |
---|---|
mysql에 대한 여러 도커 컨테이너 또는 여러 데이터베이스가 있는 하나의 인스턴스 (0) | 2023.10.15 |
키보드가 사라질 때의 Android White 배경 (0) | 2023.10.10 |
스위프트에서 UILabel의 선 간격을 늘리는 방법 (0) | 2023.10.10 |
NodeJS: 서버의 포트를 가져오는 방법은 무엇입니까? (0) | 2023.10.10 |