DROP SCHEMA - Amazon Redshift

DROP SCHEMA

스키마를 삭제합니다. 외부 스키마의 경우 스키마와 연관된 외부 데이터베이스도 삭제할 수 있습니다. 이 명령은 되돌릴 수 없습니다.

필수 권한

DROP SCHEMA에 필요한 권한은 다음과 같습니다.

  • 수퍼유저

  • 스키마 소유자

  • DROP SCHEMA 권한이 있는 사용자

구문

DROP SCHEMA [ IF EXISTS ] name [, ...] [ DROP EXTERNAL DATABASE ] [ CASCADE | RESTRICT ]

파라미터

IF EXISTS

지정된 스키마가 존재하지 않는 경우 오류 메시지와 함께 종료하는 대신, 명령이 아무 것도 변경하지 않고 스키마가 존재하지 않는다는 메시지를 반환함을 나타내는 절입니다.

이 절은 스크립트 작성 시 유용하므로, DROP SCHEMA가 존재하지 않는 스키마에 대해 실행되는 경우에는 스크립트가 실패하지 않습니다.

이름

삭제할 스키마의 이름입니다. 여러 스키마 이름을 쉼표로 구분하여 지정할 수 있습니다.

DROP EXTERNAL DATABASE

외부 스키마가 삭제되면 해당 외부 스키마와 연관된 외부 데이터베이스(있는 경우)를 삭제함을 나타내는 절입니다. 외부 데이터베이스가 없는 경우 이 명령은 외부 데이터베이스가 없다는 메시지를 반환합니다. 외부 스키마를 여러 개 삭제하면 지정된 스키마와 연관된 데이터베이스가 모두 삭제됩니다.

외부 데이터베이스에 테이블과 같은 종속 객체가 포함되어 있는 경우 종속 객체도 함께 삭제하려면 CASCADE 옵션을 포함합니다.

외부 데이터베이스를 삭제하는 경우 삭제하려는 데이터베이스와 연관된 기타 모든 외부 스키마에 대한 데이터베이스도 삭제됩니다. 해당 데이터베이스를 사용해 다른 외부 스키마에 정의된 테이블 역시 삭제됩니다.

DROP EXTERNAL DATABASE는 HIVE 메타스토어에 저장된 외부 데이터베이스는 지원하지 않습니다.

CASCADE

스키마에 있는 모든 객체를 자동으로 삭제함을 나타내는 키워드입니다. DROP EXTERNAL DATABASE가 지정되어 있으면 외부 데이터베이스의 모든 객체 역시 삭제됩니다.

RESTRICT

객체를 포함하고 있는 스키마 또는 외부 데이터베이스는 삭제하지 않음을 나타내는 키워드입니다. 이 동작이 기본값입니다.

다음 예에서는 S_SALES로 명명된 스키마를 삭제합니다. 이 예에서는 객체를 포함하고 있는 스키마는 삭제되지 않도록 하는 안전 메커니즘으로서 RESTRICT를 사용합니다. 이 경우에는 스키마 객체를 삭제한 후에 스키마를 삭제해야 합니다.

drop schema s_sales restrict;

다음 예에서는 S_SALES로 명명된 스키마와 그 스키마에 종속되는 모든 객체를 삭제합니다.

drop schema s_sales cascade;

다음 예에서는 S_SALES 스키마가 존재하는 경우에는 이를 삭제하고 존재하지 않는 경우에는 아무 작업도 수행하지 않고 메시지를 반환합니다.

drop schema if exists s_sales;

다음 예에서는 외부 스키마 S_SPECTRUM과 이 스키마와 연관된 외부 데이터베이스를 삭제합니다. 이 예에서는 RESTRICT 사용합니다. 따라서 객체가 포함되어 있으면 스키마와 데이터베이스가 삭제되지 않습니다. 이 경우에는 스키마 및 데이터베이스를 삭제하기 전에 종속 객체를 삭제해야 합니다.

drop schema s_spectrum drop external database restrict;

다음 예에서는 종속 객체와 함께 여러 스키마와 이러한 스키마와 연관된 외부 데이터를 삭제합니다.

drop schema s_sales, s_profit, s_revenue drop external database cascade;