ALTER SEQUENCE - Amazon Aurora DSQL

ALTER SEQUENCE

ALTER SEQUENCE - 시퀀스 생성기의 정의를 변경합니다.

중요

시퀀스를 사용할 때는 캐시 값을 신중하게 고려해야 합니다. 자세한 내용은 CREATE SEQUENCE 페이지의 중요 안내를 참조하세요.

워크로드 패턴을 기반으로 시퀀스를 가장 잘 사용하는 방법에 대한 지침은 시퀀스 및 자격 증명 열 작업 섹션을 참조하세요.

지원되는 구문

ALTER SEQUENCE [ IF EXISTS ] name [ INCREMENT [ BY ] increment ] [ MINVALUE minvalue | NO MINVALUE ] [ MAXVALUE maxvalue | NO MAXVALUE ] [ [ NO ] CYCLE ] [ START [ WITH ] start ] [ RESTART [ [ WITH ] restart ] ] [ CACHE cache ] [ OWNED BY { table_name.column_name | NONE } ] ALTER SEQUENCE [ IF EXISTS ] name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER } ALTER SEQUENCE [ IF EXISTS ] name RENAME TO new_name ALTER SEQUENCE [ IF EXISTS ] name SET SCHEMA new_schema where cache is 1 or cache >= 65536

설명

ALTER SEQUENCE는 기존 시퀀스 생성기의 파라미터를 변경합니다. ALTER SEQUENCE 명령에 구체적으로 설정되지 않은 파라미터는 이전 설정을 유지합니다.

ALTER SEQUENCE를 사용하려면 시퀀스를 소유해야 합니다. 시퀀스의 스키마를 변경하려면 새 스키마에 대한 CREATE 권한도 있어야 합니다. 소유자를 변경하려면 새 소유 역할에 SET ROLE을 수행할 수 있어야 하며 해당 역할에 시퀀스의 스키마에 대한 CREATE 권한이 있어야 합니다. (이러한 제한은 소유자를 변경해도 시퀀스를 삭제하고 다시 생성하여 수행할 수 없는 작업은 수행하지 않도록 강제합니다. 그러나 수퍼유저는 어떤 시퀀스의 소유권도 변경할 수 있습니다.)

파라미터

이름

변경할 시퀀스의 이름(선택적으로 스키마 한정자 포함)입니다.

IF EXISTS

시퀀스가 없는 경우 오류가 발생하지 않습니다. 이 경우 알림이 발행됩니다.

increment

INCREMENT BY increment 절은 선택 사항입니다. 양수 값은 오름차순 시퀀스를 만들고, 음수 값은 내림차순 시퀀스를 만듭니다. 지정하지 않으면 이전 증분 값이 유지됩니다.

minvalue / NO MINVALUE

선택적 절 MINVALUE minvalue는 시퀀스가 생성할 수 있는 최솟값을 결정합니다. NO MINVALUE를 지정하면 오름차순 및 내림차순 시퀀스에 대해 1 및 해당 데이터 형식의 최솟값이 기본값으로 각각 사용됩니다. 두 옵션을 모두 지정하지 않으면 현재 최솟값이 유지됩니다.

maxvalue / NO MAXVALUE

선택적 절 MAXVALUE maxvalue는 시퀀스의 최댓값을 결정합니다. NO MAXVALUE를 지정하면 오름차순 및 내림차순 시퀀스에 대해 해당 데이터 형식의 최댓값과 -1이 기본값으로 각각 사용됩니다. 두 옵션을 모두 지정하지 않으면 현재 최댓값이 유지됩니다.

CYCLE

선택적 CYCLE 키워드를 사용하여 각각 오름차순 또는 내림차순 시퀀스에 의해 maxvalue 또는 minvalue에 도달했을 때 시퀀스를 래핑할 수 있습니다. 한도에 도달하면 생성되는 다음 숫자는 각각 minvalue 또는 maxvalue가 됩니다.

NO CYCLE

선택적 NO CYCLE 키워드가 지정된 경우 시퀀스가 최댓값에 도달한 후 nextval을 직접적으로 호출하면 오류가 반환됩니다. CYCLENO CYCLE를 모두 지정하지 않으면 이전 주기 동작이 유지됩니다.

시작

선택적 절 START WITH start는 시퀀스의 기록된 시작 값을 변경합니다. 이는 현재 시퀀스 값에 영향을 주지 않으며, 향후 ALTER SEQUENCE RESTART 명령에서 사용할 값을 설정하기만 합니다.

재시작

선택적 절 RESTART [ WITH restart ]는 시퀀스의 현재 값을 변경합니다. 이는 is_called = falsesetval 함수를 직접적으로 호출하는 것과 유사합니다. 지정된 값은 nextval의 다음 직접 호출에 의해 반환됩니다. restart 값 없이 RESTART를 쓰는 것은 CREATE SEQUENCE에서 기록했거나 ALTER SEQUENCE START WITH에서 마지막으로 설정한 시작 값을 제공하는 것과 같습니다.

setval 직접 호출과 달리 시퀀스에 대한 RESTART 작업은 트랜잭션이며 동시 트랜잭션이 동일한 시퀀스에서 번호를 얻는 것을 차단합니다. 원하는 작업 모드가 아닌 경우 setval을 사용해야 합니다.

cache

CACHE cache를 사용하면 더 빠른 액세스를 위해 시퀀스 번호를 미리 할당하고 메모리에 저장할 수 있습니다. 값은 1이거나 65,536 이상이어야 합니다. 지정하지 않으면 이전 캐시 값이 유지됩니다. 캐시 동작에 대한 자세한 내용은 CREATE SEQUENCE 아래의 지침을 참조하세요.

OWNED BY table_name.column_name / OWNED BY NONE

OWNED BY 옵션을 사용하면 시퀀스가 특정 테이블 열과 연결되므로 해당 열(또는 전체 테이블)이 삭제되면 시퀀스도 자동으로 삭제됩니다. 지정된 경우 이 연결은 시퀀스에 대해 이전에 지정된 연결을 대체합니다. 지정된 테이블은 소유자가 동일해야 하며 시퀀스와 동일한 스키마에 있어야 합니다. OWNED BY NONE를 지정하면 기존 연결이 제거되어 시퀀스가 ‘독립적으로 존재하는 상태’가 됩니다.

new_owner

새 시퀀스 소유자의 사용자 이름입니다.

new_name

시퀀스의 새 이름입니다.

new_schema

시퀀스의 새 스키마입니다.

참고

ALTER SEQUENCE는 사전 할당된(캐싱된) 시퀀스 값이 있는 현재 백엔드를 제외하면 백엔드의 nextval 결과에 즉시 영향을 미치지 않습니다. 변경된 시퀀스 생성 파라미터를 확인하기 전에 캐시된 모든 값을 사용합니다. 현재 백엔드는 즉시 영향을 받습니다.

ALTER SEQUENCE는 시퀀스의 currval 상태에 영향을 주지 않습니다.

ALTER SEQUENCE는 다른 트랜잭션을 OCC로 만들 수 있습니다.

기록상 이유로 시퀀스에도 ALTER TABLE을 사용할 수 있지만, 시퀀스에서 허용되는 ALTER TABLE의 유일한 변형은 위에 표시된 형식과 동일합니다.

예제

105에서 serial이라는 시퀀스를 다시 시작합니다.

ALTER SEQUENCE serial RESTART WITH 105;

호환성

ALTER SEQUENCE는 PostgreSQL 확장인 AS, START WITH, OWNED BY, OWNER TO, RENAME TO, SET SCHEMA 절을 제외하고 SQL 표준을 준수합니다.