DROP TYPE

:doc:`ユーザー定義型</sql-reference/data-types-user-defined>`を削除します。

こちらもご参照ください。

CREATE TYPEALTER TYPEDESCRIBE TYPESHOW TYPESUNDROP TYPE

構文

DROP TYPE <name>

パラメーター

name

削除するユーザー定義型の識別子を指定します。

識別子にスペースまたは特殊文字が含まれる場合は、文字列全体を二重引用符で囲む必要があります。二重引用符で囲まれた識別子も大文字と小文字が区別されます。

詳細については、 識別子の要件 をご参照ください。

アクセス制御の要件

この操作の実行に使用される ロール には、少なくとも次の 権限 が必要です。

権限

オブジェクト

メモ

OWNERSHIP

ユーザー定義型

OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege).

スキーマ内のオブジェクトを操作するには、親データベースの少なくとも1つの権限と、親スキーマの少なくとも1つの権限が必要です。

指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。

セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。

使用上の注意

  • ユーザー定義型を削除する前に、テーブルまたはその他のデータベースオブジェクトがそのユーザー定義型を*参照していない*ことを確認してください。

    SHOWコマンドを実行して、どのデータベースオブジェクトがユーザー定義型を参照しているかを確認できます。例えば、次のクエリは:doc:SHOWCOLUMNS</sql-reference/sql/show-columns>`コマンドを:doc:`パイプ演算子</sql-reference/operators-flow>`(`->>``)と併用して実行し、データ型に``AGE``という文字列を含む列を持つテーブルを返します。

    SHOW COLUMNS ->>
      SELECT "table_name", "data_type"
        FROM $1
        WHERE "data_type" LIKE '%AGE%';
    
  • ユーザー定義型が削除され、クエリがその型の列を直接参照している場合、クエリは失敗します。削除された型の列を直接参照しないクエリは、通常どおり実行されます。

DROPTYPEコマンドを使用して``age``ユーザー定義型を削除します。

DROP TYPE age;