CREATE SEQUENCE

CREATE SEQUENCE

시퀀스(sequence)는 순차적이고 고유한 숫자를 생성하는 데 사용되는 객체예요. CREATE SEQUENCE 명령은 이런 시퀀스를 새로 만드는 명령입니다. 주로 테이블의 행마다 고유한 식별자를 부여할 때 널리 쓰여요.

출처: CREATE SEQUENCE

본문

CREATE SEQUENCE 명령은 순차적이고 고유한 숫자를 생성하는 데 사용할 수 있는 새로운 시퀀스를 생성해요.

중요 Snowflake는 시퀀스 번호가 끊김 없이 생성된다는 것을 보장하지 않아요. 생성된 번호가 반드시 연속적이지 않을 수 있습니다. 자세한 내용은 Using Sequences 문서를 참고하세요.

이 명령은 다음 변형을 지원해요: DROP SEQUENCE, ALTER SEQUENCE, SHOW SEQUENCES, DESCRIBE SEQUENCE

Syntax

CREATE [ OR REPLACE ] SEQUENCE [ IF NOT EXISTS ] <name>
  [ WITH ]
  [ START [ WITH ] [ = ] <initial_value> ]
  [ INCREMENT [ BY ] [ = ] <sequence_interval> ]
  [ { ORDER | NOORDER } ]
  [ COMMENT = '<string_literal>' ]

Variant syntax

CREATE OR ALTER SEQUENCE

이미 존재하지 않으면 새 시퀀스를 만들고, 존재하면 그 시퀀스를 문에 정의된 시퀀스로 변환해요. CREATE OR ALTER SEQUENCE 문은 CREATE SEQUENCE 문의 구문 규칙을 따르며, ALTER SEQUENCE 문과 동일한 제한 사항을 가집니다.

CREATE OR ALTER SEQUENCE <name>
  [ WITH ]
  [ START [ WITH ] [ = ] <initial_value> ]
  [ INCREMENT [ BY ] [ = ] <sequence_interval> ]
  [ { ORDER | NOORDER } ]
  [ COMMENT = '<string_literal>' ]

Required parameters (필수 파라미터)

  • name — 시퀀스의 식별자를 지정해요. 시퀀스가 생성되는 스키마 내에서 고유해야 합니다. 또한 식별자는 알파벳 문자로 시작해야 하고, 전체 식별자 문자열을 큰따옴표로 감싸지 않는 한 공백이나 특수 문자를 포함할 수 없어요 (예: "My object"). 큰따옴표로 감싼 식별자는 대소문자를 구분합니다.

Optional parameters (선택 파라미터)

  • START [ WITH ] [ = ] <initial_value> — 시퀀스가 반환하는 첫 번째 값을 지정해요. 64비트 2의 보수 정수(-2^63 ~ 2^63 - 1)로 표현할 수 있는 값이면 모두 지원됩니다. 기본값: 1
  • INCREMENT [ BY ] [ = ] <sequence_interval> — 시퀀스의 증가 간격을 지정해요. 64비트 2의 보수 정수로 표현할 수 있는 0이 아닌 값이면 모두 지원됩니다. 기본값: 1
  • { ORDER | NOORDER } — 시퀀스 값을 증가 순서로 생성할지, 감소 순서로 생성할지 여부를 지정해요. 기본값: NOORDER_SEQUENCE_AS_DEFAULT 파라미터가 기본 속성을 결정합니다.
  • COMMENT = '<string_literal>' — 시퀀스에 대한 주석을 지정해요. 기본값: 값 없음

Access control requirements (접근 제어 요구 사항)

이 작업을 실행하는 데 사용되는 역할은 최소한 다음 권한을 보유해야 해요:

  • 기존 시퀀스에 대해 CREATE OR ALTER SEQUENCE 문을 실행하려면 OWNERSHIP 권한이 필요해요. OWNERSHIP은 객체에 대한 특별한 권한으로, 객체를 생성한 역할에 자동으로 부여되지만 소유 역할(또는 MANAGE GRANTS 권한이 있는 모든 역할)이 GRANT OWNERSHIP 명령으로 다른 역할에 이전할 수 있습니다.

관리형 접근(manged access) 스키마에서는 스키마 소유자(즉 스키마에 대한 OWNERSHIP 권한을 가진 역할) 또는 MANAGE GRANTS 권한을 가진 역할만 스키마 내 객체에 대한 권한(미래 권한 포함)을 부여하거나 취소할 수 있어요.

스키마의 객체를 조작하려면 상위 데이터베이스에 대한 권한과 상위 스키마에 대한 권한이 각각 최소 하나씩 필요합니다. 지정된 권한 집합으로 사용자 정의 역할을 만드는 방법은 Creating custom roles 문서를, 보안 객체에 대한 SQL 작업의 역할·권한 부여에 대한 일반적인 정보는 Overview of Access Control 문서를 참고하세요.

Usage notes (사용 참고 사항)