5.7. 사설 토토 수정#

사설 토토을 생성한 후 실수를 하였거나 응용 프로그램의 요구 사항이 변경되었음을 알게 되면 사설 토토을 삭제하고 다시 생성할 수 있습니다. 그러나 사설 토토이 이미 데이터로 채워져 있거나 사설 토토이 다른 데이터베이스 개체(예: 외래 키 제약 조건)에서 참조되는 경우에는 편리한 옵션이 아닙니다. 그러므로PostgreSQL기존 사설 토토을 수정하는 명령군을 제공합니다. 이는 사설 토토에 포함된 데이터를 변경하는 것과 개념적으로 구별됩니다. 여기서는 사설 토토의 정의 또는 구조를 변경하는 데 관심이 있습니다.

당신은 다음을 할 수 있습니다:

  • 열 추가

  • 열 제거

  • 제약조건 추가

  • 제약조건 제거

  • 기본값 변경

  • 열 데이터 유형 변경

  • 열 이름 바꾸기

  • 사설 토토 이름 바꾸기

이 모든 작업은 다음을 사용하여 수행됩니다.사설 토토 변경명령, 해당 참조 페이지에는 여기에 제공된 것 이상의 세부정보가 포함되어 있습니다.

5.7.1. 열 추가#

열을 추가하려면 다음과 같은 명령을 사용하세요:

ALTER TABLE 제품 ADD COLUMN 설명 텍스트;

새 열은 처음에 주어진 기본값으로 채워집니다(지정하지 않으면 null기본값절).

발신포스트그레SQL11, 일정한 기본값을 가진 열을 추가하면 더 이상 테이블의 각 행을 업데이트해야 한다는 의미가 아닙니다.사설 토토 변경문이 실행됩니다. 대신 다음에 행에 액세스할 때 기본값이 반환되고 테이블을 다시 작성할 때 적용되어사설 토토 변경큰 사설 토토에서도 매우 빠릅니다.

그러나 기본값이 휘발성인 경우(예:시계_타임스탬프()) 각 행은 당시 계산된 값으로 업데이트되어야 합니다.사설 토토 변경실행됩니다. 잠재적으로 긴 업데이트 작업을 방지하려면, 특히 대부분 기본값이 아닌 값으로 열을 채우려는 경우 기본값 없이 열을 추가하는 것이 바람직할 수 있습니다. 다음을 사용하여 올바른 값을 삽입하세요.업데이트을 선택한 다음 아래 설명에 따라 원하는 기본값을 추가하세요.

또한 일반적인 구문을 사용하여 동시에 열에 대한 제약 조건을 정의할 수 있습니다:

ALTER TABLE 제품 ADD COLUMN 설명 텍스트 확인(설명 < '');

사실 열 설명에 적용할 수 있는 모든 옵션은사설 토토 생성여기에서 사용할 수 있습니다. 그러나 기본값은 주어진 제약 조건을 충족해야 한다는 점을 명심하십시오.추가실패할 것입니다. 또는 새 열을 올바르게 입력한 후 나중에 제약 조건을 추가할 수 있습니다(아래 참조).

5.7.2. 열 제거#

열을 제거하려면 다음 명령을 사용하십시오:

ALTER TABLE 제품 DROP COLUMN 설명;

열에 있던 모든 데이터가 사라집니다. 열과 관련된 사설 토토 제약 조건도 삭제됩니다. 그러나 해당 열이 다른 사설 토토의 외래 키 제약 조건에 의해 참조되는 경우,PostgreSQL해당 제약조건을 자동으로 삭제하지 않습니다. 다음을 추가하여 열에 의존하는 모든 항목을 삭제하도록 승인할 수 있습니다.캐스케이드:

ALTER TABLE 제품 DROP COLUMN 설명 CASCADE;

참조PostgreSQL : 문서 : 17 : 5.15. 무지개 토토성 추적이것 뒤에 있는 일반적인 메커니즘에 대한 설명입니다.

5.7.3. 제약 조건 추가#

제약조건을 추가하려면 테이블 제약조건 구문이 사용됩니다. 예를 들면:

ALTER TABLE 제품 ADD CHECK(이름 < '');
ALTER TABLE 제품 ADD CONSTRAINT some_name UNIQUE (product_no);
ALTER TABLE 제품 외래 키 추가(product_group_id) REFERENCES product_groups;

테이블 제약조건으로 쓸 수 없는 null이 아닌 제약조건을 추가하려면 다음 구문을 사용하십시오:

ALTER TABLE 제품 ALTER COLUMN product_no SET NOT NULL;

제약조건은 즉시 확인되므로 테이블 데이터는 추가되기 전에 제약조건을 충족해야 합니다.

5.7.4. 제약조건 제거#

제약조건을 제거하려면 이름을 알아야 합니다. 이름을 지어주면 쉽습니다. 그렇지 않으면 시스템에서 생성된 이름을 할당하므로 이를 알아내야 합니다.psql명령\d사설 토토 이름여기서 도움이 될 수 있습니다. 다른 인터페이스에서는 테이블 세부 정보를 검사하는 방법을 제공할 수도 있습니다. 그런 다음 명령은 다음과 같습니다.

ALTER TABLE 제품 DROP CONSTRAINT some_name;

열 삭제와 마찬가지로 다음을 추가해야 합니다.캐스케이드다른 것이 의존하는 제약 조건을 삭제하려는 경우. 예를 들어 외래 키 제약 조건은 참조된 열의 고유 또는 기본 키 제약 조건에 따라 달라집니다.

이것은 null이 아닌 제약조건을 제외한 모든 제약조건 유형에 대해 동일하게 작동합니다. null이 아닌 제약 조건을 삭제하려면 다음을 사용하세요.

ALTER TABLE 제품 ALTER COLUMN product_no DROP NOT NULL;

(null이 아닌 제약 조건에는 이름이 없다는 점을 기억하세요.)

5.7.5. 열의 기본값 변경#

열의 새로운 기본값을 설정하려면 다음과 같은 명령을 사용하십시오:

ALTER TABLE 제품 ALTER COLUMN 가격 SET DEFAULT 7.77;

이것은 테이블의 기존 행에 영향을 미치지 않으며 향후 기본값만 변경한다는 점에 유의하세요.삽입명령.

기본값을 제거하려면 다음을 사용하십시오.

ALTER TABLE 제품 ALTER COLUMN 가격 DROP DEFAULT;

이것은 기본값을 null로 설정하는 것과 사실상 동일합니다. 결과적으로 기본값이 암시적으로 null 값이기 때문에 정의되지 않은 기본값을 삭제하는 것은 오류가 아닙니다.

5.7.6. 열의 데이터 유형 변경#

열을 다른 데이터 유형으로 변환하려면 다음과 같은 명령을 사용하십시오:

ALTER TABLE 제품 ALTER COLUMN 가격 TYPE 숫자(10,2);

이것은 열의 각 기존 항목이 암시적 캐스트에 의해 새로운 유형으로 변환될 수 있는 경우에만 성공합니다. 더 복잡한 변환이 필요한 경우 다음을 추가할 수 있습니다.사용 중이전 값에서 새 값을 계산하는 방법을 지정하는 절.

PostgreSQL는 열의 기본값(있는 경우)을 새 유형 및 열과 관련된 모든 제약 조건으로 변환하려고 시도합니다. 그러나 이러한 변환은 실패하거나 놀라운 결과를 낳을 수 있습니다. 유형을 변경하기 전에 열에 대한 제약 조건을 삭제한 다음 나중에 적절하게 수정된 제약 조건을 다시 추가하는 것이 가장 좋은 경우가 많습니다.

5.7.7. 열 이름 바꾸기#

열 이름을 바꾸려면:

ALTER TABLE 제품 RENAME COLUMN product_no TO product_number;

5.7.8. 사설 토토 이름 바꾸기#

사설 토토 이름을 바꾸려면:

ALTER TABLE 제품 이름을 항목으로 변경;

수정 사항 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.