사설 토토 변경 [만]이름 [ * ]
액션[, ... ]
사설 토토 변경 [만 해당]이름[ * ]
[ 열 ] 이름 바꾸기열받는 사람new_column사설 토토 변경이름다음으로 이름 바꾸기:new_name사설 토토 변경이름스키마 설정new_schema어디에서액션다음 중 하나입니다:
추가 [ 열 ]열 유형 [ column_constraint[ ... ] ]
드롭 [ 열 ]열[ 제한 | 캐스케이드 ]
변경 [ 열 ]열[ 데이터 설정 ] 유형유형[ 사용 중표현]
변경 [ 열 ]열기본값으로 설정표현변경 [ 열 ]열기본값 삭제
변경 [ 열 ]열설정 | 삭제 NULL이 아님
변경 [ 열 ]열통계 설정정수변경 [ 열 ]열저장소 설정 일반 | 외부 | 확장 | 메인
추가table_constraint드롭 제약제약_이름[ 제한 | 캐스케이드 ]
트리거 비활성화 [trigger_name| 전체 | 사용자 ]
트리거 활성화 [trigger_name| 전체 | 사용자 ]
복제본 트리거 활성화trigger_name항상 트리거 활성화trigger_name규칙 비활성화rewrite_rule_name규칙 활성화rewrite_rule_name복제본 규칙 활성화rewrite_rule_name항상 규칙 활성화rewrite_rule_name클러스터 켜짐색인_이름클러스터 없이 설정
OIDS로 설정
OIDS 없이 설정
설정(storage_parameter = 값[, ... ] )
재설정(storage_parameter[, ... ] )
상속parent_table상속 없음parent_table소유자:new_owner사설 토토스페이스 설정new_tablespace
사설 토토 변경의 정의를 변경합니다. 기존 사설 토토. 여러 가지 하위 양식이 있습니다.
이 양식은 동일한 열을 사용하여 테이블에 새 열을 추가합니다. 구문은 다음과 같습니다.PostgreSQL : 문서.
이 양식은 사설 토토에서 열을 삭제합니다. 인덱스와 사설 토토 열과 관련된 제약 조건은 자동으로 역시 떨어졌다. 당신은 말해야 할 것입니다캐스케이드사설 토토 밖에 있는 것이 있으면 열에 따라 다릅니다(예: 외래 키 참조). 또는 조회수입니다.
이 양식은 테이블의 열 유형을 변경합니다. 열과 관련된 인덱스 및 간단한 테이블 제약 조건 새 열 유형을 사용하도록 자동으로 변환됩니다. 원래 제공된 표현식을 다시 분석하여. 는 선택사항사용 중절이 지정함 이전 열 값에서 새 열 값을 계산하는 방법; 만약에 생략하면 기본 변환은 이전 데이터 유형에서 새 데이터 유형으로 할당이 변환됩니다. 갑사용 중절이 없으면 절을 제공해야 합니다. 묵시적 또는 이전 유형에서 새로운 유형으로의 할당 캐스팅입니다.
이 양식은 기본값을 설정하거나 제거합니다. 칼럼. 기본값은 후속에만 적용됩니다.삽입명령; 그들은 원인이 되지 않습니다 변경하려는 행이 이미 테이블에 있습니다. 기본값은 다음과 같습니다. 뷰용으로 생성되며 이 경우 삽입됩니다.삽입뷰에 대한 진술 보기 전에삽입 중규칙 적용됩니다.
이 양식은 열이 허용하도록 표시되었는지 여부를 변경합니다. null 값을 사용하거나 null 값을 거부합니다. 당신은 사용할 수 있습니다NULL이 아닌 설정열이 null 값이 없습니다.
이 양식은 열별 통계 수집을 설정합니다. 후속 목표분석작업. 목표는 할 수 있다 0~10000 범위에서 설정됩니다. 또는 -1로 설정하십시오. 시스템 기본 통계 대상을 사용하여 되돌리려면 (default_statistics_target). 다음의 통계 사용에 대한 자세한 내용은PostgreSQL쿼리 플래너, 참조윈 토토.
이 양식은 열의 저장 모드를 설정합니다. 이 이 열이 인라인으로 유지되는지 아니면 보조토스트사설 토토, 데이터를 압축해야 하는지 여부입니다.일반다음 용도로 사용해야 합니다. 다음과 같은 고정 길이 값정수인라인이며 압축되지 않았습니다.메인인라인 압축 가능한 데이터용입니다.외부압축되지 않은 외부 데이터용입니다. 그리고확장외부용입니다. 압축된 데이터입니다.확장됨이것은 비를 지원하는 대부분의 데이터 유형에 대한 기본값일반저장. 의 사용외부다음에 하위 문자열 작업을 수행합니다. 매우 크다텍스트그리고바이테아값이 더 빨리 실행되지만, 저장 공간이 늘어났습니다. 참고하세요세트 저장자체적으로는 사설 토토의 어떤 것도 변경하지 않습니다. 단지 미래 사설 토토에서 추구할 전략을 설정하는 것뿐입니다. 업데이트. 참조섹션 53.2더 많은 정보를 원하시면.
이 양식은 다음을 사용하여 테이블에 새로운 제약 조건을 추가합니다. 와 같은 구문사설 토토 생성.
이 양식은 사설 토토에 지정된 제약 조건을 삭제합니다.
이 양식은 소속된 트리거의 실행을 구성합니다. 테이블로. 비활성화된 트리거는 여전히 시스템이지만 트리거 이벤트가 발생하면 실행되지 않습니다. 발생합니다. 지연된 트리거의 경우 활성화 상태는 다음과 같습니다. 트리거가 발생했을 때가 아니라 이벤트가 발생할 때 확인됨 함수가 실제로 실행됩니다. 하나는 비활성화하거나 활성화할 수 있습니다 이름으로 지정된 단일 트리거 또는 테이블 또는 사용자 트리거만(이 옵션은 트리거를 제외함) 외래 키 제약 조건을 구현하는 데 사용됩니다. 제약 조건 트리거를 비활성화하거나 활성화하려면 다음이 필요합니다. 슈퍼유저 권한; 때문에 주의해서 해야 한다 물론 제약조건의 무결성은 트리거가 실행되지 않으면 보장됩니다. 방아쇠 발사 메커니즘도 구성의 영향을 받습니다. 변수session_replication_role. 복제 역할이 활성화되면 간단히 활성화된 트리거가 실행됩니다. 이다"원산지"(기본값) 또는"지역". 다음과 같이 구성된 트리거복제본 활성화다음의 경우에만 실행됩니다. 세션이 진행 중입니다."복제본"모드 및 다음과 같이 구성된 트리거활성화 항상현재 복제에 관계없이 실행됩니다. 모드.
이 양식은 다시 쓰기 규칙의 실행을 구성합니다 테이블에 속합니다. 비활성화된 규칙이 여전히 알려져 있습니다. 시스템에 적용되지만 쿼리 재작성 중에는 적용되지 않습니다. 는 의미론은 비활성화/활성화된 트리거와 같습니다. 이 다음에 대한 구성이 무시됩니다.켜짐 선택규칙은 다음을 위해 항상 적용됩니다. 현재 세션이 기본이 아닌 복제 역할.
이 양식은 미래를 위한 기본 색인을 선택합니다PostgreSQL : 문서 : 8.4 : 토토 캔작업. 그것 실제로 테이블을 다시 클러스터링하지는 않습니다.
이 양식은 가장 최근에 사용한 항목을 삭제합니다.PostgreSQL : 문서 : 8.4 : 토토 캔색인 사양 테이블에서. 이는 향후 클러스터 작업에 영향을 미칩니다. 색인을 지정하지 마십시오.
이 양식은 다음을 추가합니다.oid시스템 열을 테이블에 추가합니다(참조섹션 5.4). 아무것도 하지 않는다 사설 토토에 이미 OID가 있는 경우.
이것은 다음과 동일하지 않습니다.열 oid oid 추가; 그러면 노멀이 추가되겠죠 우연히 이름이 지정된 열oid, 시스템 열이 아닙니다.
이 양식은 다음을 제거합니다.oid테이블의 시스템 열입니다. 이는 정확히 다음과 같습니다.DROP COLUMN oid RESTRICT, 제외 이미 없는 경우에는 불평하지 않습니다.oid열.
이 양식은 다음에 대한 하나 이상의 저장 매개변수를 변경합니다. 테이블. 참조저장 매개변수22709_22977클러스터또는 다음 형식 중 하나사설 토토 변경사설 토토을 강요하는 것 다시 작성하세요.
참고:그동안만들기 표허용OIDS되다 에 지정됨함께 (storage_parameter)구문,사설 토토 변경치료하지 않음OIDS저장 매개변수로. 대신에OIDS로 설정그리고OIDS 없이 설정양식을 작성합니다 OID 상태를 변경합니다.
이 양식은 하나 이상의 저장 매개변수를 해당 매개변수로 재설정합니다. 기본값. 마찬가지로SET, 사설 토토 사설 토토을 완전히 업데이트하려면 다시 작성해야 할 수도 있습니다.
이 양식은 대상 테이블을 다음의 새로운 하위 항목으로 추가합니다. 지정된 상위 테이블. 이후에는 해당 업체에 대한 질의가 부모에는 대상 테이블의 레코드가 포함됩니다. 될 하위 항목으로 추가된 경우 대상 테이블에는 이미 모든 항목이 포함되어 있어야 합니다. 상위 항목과 동일한 열(추가 항목이 있을 수 있음) 열도 마찬가지입니다). 열에는 일치하는 데이터 유형이 있어야 합니다. 그리고 만약 그렇다면NULL이 아님부모에 제약 조건이 있는 경우에도 있어야 합니다NULL이 아님제약조건 아이.
다음에 대해 일치하는 하위 테이블 제약 조건도 있어야 합니다. 모두확인제약조건 부모. 현재고유, 기본 키및외래 키제약조건은 고려되지 않습니다. 하지만 이는 향후 변경될 수 있습니다.
이 양식은 목록에서 대상 사설 토토을 제거합니다. 지정된 상위 사설 토토의 하위입니다. 에 대한 쿼리 상위 사설 토토에는 더 이상 대상 사설 토토.
이 양식은 테이블, 시퀀스 또는 소유자의 소유자를 변경합니다. 지정된 사용자에게 표시됩니다.
이 양식은 테이블의 사설 토토스페이스를 다음으로 변경합니다. 지정된 사설 토토스페이스를 지정하고 연관된 데이터 파일을 이동합니다. 테이블을 새 사설 토토스페이스로 복사합니다. 테이블의 인덱스, 있는 경우 이동되지 않습니다. 하지만 따로 이동할 수는 있어요 추가로사설 토토스페이스 설정명령. 또한 참조하세요사설 토토스페이스 생성.
그RENAME양식 변경 테이블 이름(또는 인덱스, 시퀀스, 뷰) 또는 테이블의 개별 열 이름입니다. 효과가 없습니다 저장된 데이터에 대해.
이 양식은 사설 토토을 다른 스키마로 이동합니다. 소유한 관련 인덱스, 제약 조건 및 시퀀스 사설 토토 열도 이동됩니다.
다음을 제외한 모든 작업RENAME그리고스키마 설정목록으로 결합 가능 여러 변경 사항을 동시에 적용할 수 있습니다. 예를 들어, 여러 열을 추가하거나 여러 유형을 변경할 수 있습니다. 단일 명령의 열. 이는 특히 다음과 같은 경우에 유용합니다. 대형 테이블은 테이블을 한 번만 통과하면 되기 때문에 만들어졌습니다.
사용하려면 사설 토토을 소유해야 합니다.변경 표. 테이블의 스키마를 변경하려면 다음도 필요합니다.만들기새 스키마에 대한 권한. 받는 사람 테이블을 상위 테이블의 새 하위 테이블로 추가하려면 해당 테이블을 소유해야 합니다. 부모 테이블도 마찬가지입니다. 소유자를 변경하려면 다음과 같은 소유자여야 합니다. 새로운 소유 역할의 직간접 구성원 및 해당 역할 있어야 합니다생성에 대한 특권 사설 토토의 스키마. (이러한 제한은 주인은 당신이 떨어뜨려서 할 수 없는 일을 하지 않습니다. 사설 토토을 다시 만들고 있습니다. 그러나 슈퍼유저는 소유권을 변경할 수 있습니다. 어쨌든 어떤 사설 토토이든.)
기존 이름(선택적으로 스키마 한정) 변경할 테이블입니다. 만일만이다 테이블 이름 앞에 지정하면 해당 테이블만 변경되었습니다. 만일만지정되지 않았습니다. 테이블과 모든 하위 테이블(있는 경우)은 다음과 같습니다. 변경되었습니다. 선택적으로,*될 수 있습니다 명시적으로 나타내기 위해 테이블 이름 뒤에 지정됨 하위 테이블이 포함됩니다.
새 열 또는 기존 열의 이름.
기존 열의 새 이름.
테이블의 새 이름입니다.
새 열의 데이터 유형 또는 기존 열입니다.
사설 토토에 대한 새로운 사설 토토 제약조건입니다.
삭제할 기존 제약 조건의 이름.
떨어진 항목에 의존하는 개체를 자동으로 삭제합니다. 열 또는 제약 조건(예: 열).
열이나 제약조건이 있는 경우 삭제를 거부하십시오. 종속 개체. 이것이 기본 동작입니다.
비활성화 또는 활성화할 단일 트리거의 이름.
테이블에 속한 모든 트리거를 비활성화하거나 활성화합니다. (트리거 중 하나라도 발생하면 수퍼유저 권한이 필요합니다. 외래 키 제약 조건에 대한 것입니다.)
테이블에 속한 모든 트리거를 비활성화하거나 활성화합니다. 외래 키 제약조건 트리거는 제외됩니다.
테이블이 표시되어야 하는 인덱스 이름 클러스터링.
테이블 저장소 매개변수의 이름입니다.
테이블 저장 매개변수의 새 값. 이것은 아마도 매개변수에 따라 숫자 또는 단어가 됩니다.
이것과 연결하거나 연결 해제할 상위 사설 토토 사설 토토.
테이블의 새로운 소유자의 사용자 이름.
테이블이 포함될 사설 토토스페이스의 이름 옮겼습니다.
테이블이 포함될 스키마의 이름 옮겼습니다.
핵심 단어열소음이고 그럴 수 있습니다. 생략합니다.
열이 다음으로 추가될 때추가 열, 테이블의 모든 기존 행은 다음으로 초기화됩니다. 열의 기본값(아니면 NULL기본값절이 지정됨).
널이 아닌 기본값을 가진 열 추가 또는 유형 변경 기존 열을 삭제하려면 전체 테이블이 필요합니다. 다시 작성되었습니다. 이 작업에는 상당한 시간이 걸릴 수 있습니다. 대형 테이블; 일시적으로 두 배의 디스크가 필요합니다. 공간. 시스템 추가 또는 제거oid열도 마찬가지로 전체 테이블을 다시 작성해야 합니다.
추가확인또는NULL이 아님제약조건에 따라 테이블을 스캔해야 합니다. 기존 행이 제약 조건을 충족하는지 확인하세요.
여러 항목을 지정하는 옵션을 제공하는 주된 이유 한 번에 변경됨사설 토토 변경그건 따라서 여러 테이블 스캔 또는 다시 쓰기를 하나의 테이블로 결합할 수 있습니다. 테이블 위로 한 번 지나가세요.
그열 삭제양식은 그렇지 않습니다 기둥을 물리적으로 제거하지만 단순히 보이지 않게 만듭니다. SQL 작업. 후속 삽입 및 업데이트 작업 테이블은 열에 대해 null 값을 저장합니다. 따라서, 열은 빠르지만 온디스크 공간을 즉시 줄이지는 않습니다. 삭제된 열이 차지하는 공간에 따른 테이블 크기 회수되지 않습니다. 이 공간은 시간이 지나면 다음과 같이 회수됩니다. 기존 행이 업데이트됩니다. (이 진술은 다음 경우에는 적용되지 않습니다. 시스템 삭제oid열; 즉 즉시 재작성이 완료되었습니다.)
사실은변경 유형필요합니다 전체 테이블을 다시 작성하는 것이 때로는 유리할 수도 있습니다. 다시 쓰기 프로세스는 테이블의 데드 스페이스를 제거합니다. 에 대한 예를 들어, 삭제된 열이 차지한 공간을 회수하려면 즉시 가장 빠른 방법은 다음과 같습니다.
ALTER TABLE 사설 토토 ALTER COLUMN anycol TYPE anytype;
어디에서anycol남은 사설 토토이 있습니까? 열 및모든 유형다음과 같은 유형입니다. 열에는 이미 있습니다. 이로 인해 의미상으로 표시되지 않습니다. 테이블이 변경되었지만 명령이 강제로 다시 작성되었습니다. 더 이상 유용하지 않은 데이터를 제거합니다.
그사용 중옵션변경 유형실제로 어떤 표현식이라도 지정할 수 있습니다 행의 이전 값을 포함합니다. 즉, 다음을 참조할 수 있습니다. 다른 열과 변환 중인 열도 마찬가지입니다. 이를 통해 매우 일반적인 변환은변경 유형구문. 이러한 유연성으로 인해,사용 중표현식은 다음에 적용되지 않습니다. 열의 기본값(있는 경우) 결과는 그렇지 않을 수도 있습니다 기본값에 필요한 상수 표현식입니다. 이는 다음을 의미합니다. 암시적 또는 이전 항목에서 새 항목으로의 할당이 없는 경우 유형,변경 유형변환에 실패할 수 있음 비록 a사용 중절 공급됩니다. 이러한 경우에는 다음을 사용하여 기본값을 삭제하세요.기본값 삭제, 다음을 수행하세요.변경 유형, 그런 다음SET 기본값적절한 새 기본값을 추가합니다. 유사한 고려 사항은 다음과 관련된 인덱스 및 제약 조건에 적용됩니다. 열.
테이블에 하위 테이블이 있으면 다음이 허용되지 않습니다. 상위 테이블의 열 유형 추가, 이름 바꾸기 또는 변경 후손들에게도 똑같이 하지 않고. 즉,사설 토토만 변경거부됩니다. 이는 다음을 보장합니다. 하위 항목에는 항상 상위 항목과 일치하는 열이 있습니다.
재귀적열 삭제작동 하위 항목이 있는 경우에만 하위 테이블의 열을 제거합니다. 다른 부모로부터 해당 열을 상속받지 않았으며 열의 독립적인 정의. 비재귀적열 삭제(즉,사설 토토만 변경...열 삭제)는 절대 제거되지 않습니다. 모든 하위 열을 대신 독립적으로 표시합니다. 상속되지 않고 정의되었습니다.
그트리거, 클러스터, 소유자및사설 토토스페이스작업은 절대 반복되지 않습니다. 하위 사설 토토; 즉, 그들은 항상 마치처럼 행동합니다만지정되었습니다. 제약 조건을 추가하면 에 대해서만 재귀함)확인제약조건 및 그러한 제약을 위해서는 그렇게 해야 합니다.
시스템 카탈로그 테이블의 일부를 변경하는 것은 허용됩니다.
참조PostgreSQL : 문서 : 8.4 : 롤 토토 작성유효한 매개변수에 대한 추가 설명을 참조하세요.제5장다음에 대한 추가 정보가 있습니다. 상속.
다음 유형의 열을 추가하려면varchar에 사설 토토:
ALTER TABLE 배포자 ADD COLUMN 주소 varchar(30);
사설 토토에서 열을 삭제하려면:
ALTER TABLE 배포자 DROP COLUMN 주소 RESTRICT;
두 개의 기존 열 유형을 하나로 변경하려면 작업:
ALTER TABLE 배포자
ALTER COLUMN 주소 TYPE varchar(80),
ALTER COLUMN 이름 TYPE varchar(100);
UNIX 타임스탬프를 포함하는 정수 열을 다음으로 변경하려면시간대가 포함된 타임스탬프경유사용 중절:
ALTER TABLE foo
ALTER COLUMN foo_timestamp SET DATA TYPE 시간대가 포함된 타임스탬프
사용
시간대가 'epoch'인 타임스탬프 + foo_timestamp * 간격 '1초';
열에 기본 표현식이 있는 경우에도 마찬가지입니다. 자동으로 새로운 데이터 유형으로 변환됩니다.
ALTER TABLE foo
ALTER COLUMN foo_timestamp DROP DEFAULT,
ALTER COLUMN foo_timestamp TYPE 시간대가 포함된 타임스탬프
사용
시간대가 'epoch'인 타임스탬프 + foo_timestamp * 간격 '1초',
ALTER COLUMN foo_timestamp SET DEFAULT now();
기존 열의 이름을 바꾸려면:
ALTER TABLE 배포자 RENAME COLUMN 주소 TO 도시;
기존 테이블의 이름을 바꾸려면:
ALTER TABLE 유통업체 이름을 공급업체로 변경;
열에 null이 아닌 제약 조건을 추가하려면:
ALTER TABLE 배포자 ALTER COLUMN street SET NOT NULL;
열에서 null이 아닌 제약 조건을 제거하려면:
ALTER TABLE 배포자 ALTER COLUMN street DROP NOT NULL;
테이블과 모든 하위 항목에 검사 제약조건을 추가하려면:
ALTER TABLE 배포자 ADD CONSTRAINT zipchk CHECK (char_length(zipcode) = 5);
사설 토토과 그 모든 사설 토토에서 검사 제약 조건을 제거하려면 아이들:
ALTER TABLE 배포자 DROP CONSTRAINT zipchk;
하나의 사설 토토에서만 검사 제약 조건을 제거하려면:
ALTER TABLE ONLY 배포자 DROP CONSTRAINT zipchk;
(검사 제약은 모든 어린이에 대해 그대로 유지됩니다. 사설 토토.)
테이블에 외래 키 제약 조건을 추가하려면:
ALTER TABLE distributions ADD CONSTRAINT distfk FOREIGN KEY (주소) REFERENCES 주소 (주소) MATCH FULL;
테이블에 (다중 열) 고유 제약 조건을 추가하려면:
ALTER TABLE 배포자 ADD CONSTRAINT dist_id_zipcode_key UNIQUE (dist_id, 우편번호);
자동으로 명명된 기본 키 제약 조건을 추가하려면 테이블은 하나의 기본 테이블만 가질 수 있다는 점에 유의하세요. 키:
ALTER TABLE 배포자가 기본 키 추가(dist_id);
테이블을 다른 사설 토토스페이스로 이동하려면:
ALTER TABLE 배포자 SET TABLESPACE fasttablespace;
사설 토토을 다른 스키마로 이동하려면:
ALTER TABLE myschema.distributors SET SCHEMA yourschema;