DROP DATABASE¶
시스템에서 데이터베이스를 제거합니다.
구문¶
DROP DATABASE [ IF EXISTS ] <name> [ CASCADE | RESTRICT ]
매개 변수¶
name
삭제할 데이터베이스의 식별자를 지정합니다. 식별자에 공백, 특수 문자 또는 대/소문자가 혼합된 문자가 포함된 경우 전체 문자열을 큰따옴표로 묶어야 합니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다.
CASCADE | RESTRICT
데이터베이스에 있는 임의의 테이블을 참조하는 외래 키가 있는 경우 데이터베이스를 삭제할 수 있는지 여부를 지정합니다.
CASCADE
는 다른 테이블의 외래 키가 참조하는 기본/고유 키가 있는 테이블을 포함하여 데이터베이스와 데이터베이스의 모든 오브젝트를 삭제합니다.RESTRICT
는 기존 외래 키 참조에 대한 경고를 반환하고 데이터베이스를 삭제하지 않습니다.
기본값:
CASCADE
사용법 노트¶
데이터베이스를 삭제해도 시스템에서 영구적으로 제거되지는 않습니다. 삭제된 데이터베이스의 버전은 데이터베이스에 대한
DATA_RETENTION_TIME_IN_DAYS
매개 변수로 지정된 일수 동안 Time Travel 에 보존됩니다.Time Travel 보존 기간 이내에, UNDROP DATABASE 명령을 사용하여 삭제된 데이터베이스를 복원할 수 있습니다.
Time Travel 보존 기간이 끝날 때, 삭제된 데이터베이스의 다음 상태는 이 데이터베이스가 영구적인지 일시적인지에 따라 달라집니다.
영구 데이터베이스는 Fail-safe 로 이동합니다. Fail-safe(7일)에서는 삭제된 데이터베이스를 복구할 수 있지만, Snowflake에서만 가능합니다. 데이터베이스가 Fail-safe 상태를 벗어나면 제거됩니다.
일시적 데이터베이스는 Fail-safe가 없으므로, Time Travel에서 벗어날 때 제거됩니다.
삭제된 데이터베이스는 제거된 후에는 복구할 수 없으며, 다시 만들어야 합니다.
현재, 데이터베이스를 삭제할 때 하위 스키마 또는 테이블의 데이터 보존 기간을 데이터베이스의 보존 기간과 다르게 명시적으로 설정했다면 이 데이터 보존 기간은 허용되지 않습니다. 하위 스키마 또는 테이블은 데이터베이스와 같은 기간 동안 보존됩니다. 이러한 하위 오브젝트(스키마 또는 테이블)의 데이터 보존 기간을 적용하려면 해당 오브젝트를 명시적으로 삭제한 후 데이터베이스 또는 스키마를 삭제하십시오.
데이터베이스를 삭제한 후, 같은 이름의 데이터베이스를 만들면 새 버전의 데이터베이스가 생성됩니다. 이전 데이터베이스의 삭제된 버전은 여전히 다음 방법을 사용해 복원할 수 있습니다.
현재 버전의 데이터베이스 이름을 다른 이름으로 바꿉니다.
UNDROP DATABASE 명령을 사용하여 이전 버전을 복원합니다.
정책 또는 태그가 테이블 또는 뷰 열에 연결되는 경우 데이터베이스를 성공적으로 삭제하려면 데이터베이스와 스키마 내에서 정책 또는 태그가 자급식이 되도록 해야 합니다. 예를 들어,
database_1
은policy_1
을 포함하고policy_1
은database_1
에서만 사용됩니다. 그렇지 않으면 허상 참조 가 발생합니다.세션 정책 또는 비밀번호 정책이 사용자 또는 계정에 설정된 경우 DROP 작업이 실패합니다.
데이터베이스 복제 사용법 노트¶
언제든지 보조 데이터베이스를 삭제할 수 있습니다. 데이터베이스 소유자(즉, 데이터베이스에 대한 OWNERSHIP 권한 역할)만 데이터베이스를 삭제할 수 있습니다.
데이터베이스의 복제본(즉, 보조 데이터베이스)이 하나 이상 있는 경우 기본 데이터베이스를 삭제할 수 없습니다. 기본 데이터베이스를 삭제하려면 먼저 보조 데이터베이스를 승격하여 기본 데이터베이스로 사용하도록 한 후에 이전 기본 데이터베이스를 삭제합니다. 또는 기본 데이터베이스에 대한 모든 보조 데이터베이스를 삭제한 후 기본 데이터베이스를 삭제합니다.
데이터베이스 소유자만 데이터베이스를 삭제할 수 있음에 유의하십시오.
예¶
DROP DATABASE mytestdb2; +---------------------------------+ | status | |---------------------------------| | MYTESTDB2 successfully dropped. | +---------------------------------+ SHOW DATABASES LIKE 'mytestdb2'; +------------+------+------------+------------+--------+-------+---------+---------+----------------+ | created_on | name | is_default | is_current | origin | owner | comment | options | retention_time | |------------+------+------------+------------+--------+-------+---------+---------+----------------| +------------+------+------------+------------+--------+-------+---------+---------+----------------+ SHOW DATABASES HISTORY LIKE 'mytestdb2'; +---------------------------------+-----------+------------+------------+--------+--------+---------+---------+----------------+---------------------------------+ | created_on | name | is_default | is_current | origin | owner | comment | options | retention_time | dropped_on | |---------------------------------+-----------+------------+------------+--------+--------+---------+---------+----------------+---------------------------------| | Wed, 25 Feb 2015 16:16:54 -0800 | MYTESTDB2 | N | N | | PUBLIC | | | 1 | Fri, 13 May 2016 17:35:09 -0700 | +---------------------------------+-----------+------------+------------+--------+--------+---------+---------+----------------+---------------------------------+