DROP SEQUENCE
DROP SEQUENCE
현재/지정된 스키마에서 시퀀스(sequence)를 제거하는 명령이에요. 시퀀스는 고유한 숫자 값을 생성하는 데 사용돼요.
출처: 문서
본문
구문 (Syntax)
DROP SEQUENCE [ IF EXISTS ] <name> [ CASCADE | RESTRICT ]
파라미터
- name — 삭제할 시퀀스의 식별자를 지정해요. 시퀀스 식별자가 정규화되지 않았다면(즉
db_name.schema_name.sequence_name또는schema_name.sequence_name형식이 아니라면), 명령은 세션의 현재 스키마에서 시퀀스를 찾아요. - CASCADE | RESTRICT — Snowflake는
CASCADE와RESTRICT키워드를 구문적으로 허용하지만 실제로는 동작하지 않아요. 예를 들어CASCADE키워드로 시퀀스를 삭제해도 그 시퀀스를 사용하는 테이블이 실제로 삭제되지는 않아요.RESTRICT키워드로 시퀀스를 삭제해도 테이블이 여전히 시퀀스를 사용 중이어도 경고가 발생하지 않아요.
사용 메모 (Usage notes)
- 시퀀스를 삭제하려면 시퀀스에 대한 소유권(ownership) 권한이 있는 역할을 사용해야 해요.
- 시퀀스를 삭제한 후 같은 이름으로 시퀀스를 만들면 새 버전의 시퀀스가 생성돼요. 새 시퀀스는 이전 시퀀스가 멈춘 지점부터 숫자 생성을 재개하지 않아요.
- 시퀀스를 삭제하기 전에 어떤 테이블이나 다른 데이터베이스 객체가 시퀀스를 참조하지 않는지 확인해요.
- 삭제된 시퀀스가 테이블의
DEFAULT절에서 참조되었다면, 그 테이블에 대해GET_DDL()을 호출하면 테이블을 만든 DDL 대신 오류가 발생해요. IF EXISTS절을 지정했을 때 대상 객체가 존재하지 않으면, 명령은 오류를 반환하지 않고 성공적으로 완료돼요.
예시 (Examples)
시퀀스를 삭제해요:
DROP SEQUENCE IF EXISTS invoice_sequence_number;