DROP TYPE

移除 用户定义的类型

另请参阅:

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).

对架构中的对象进行操作至少需要父数据库的一项权限和父架构的一项权限。

有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色

有关对 安全对象 执行 SQL 操作的相应角色和权限授予的一般信息,请参阅 访问控制概述

使用说明

  • 在删除用户定义类型之前,请确认 没有 表或其他数据库对象引用该用户定义类型。

    您可以运行 SHOW 命令来确定哪些数据库对象引用了用户定义类型。例如,以下查询运行带有 竖线运算符 (->>) 的 SHOW COLUMNS 命令,以返回包含数据类型带有 AGE 文本的列的表:

    SHOW COLUMNS ->>
      SELECT "table_name", "data_type"
        FROM $1
        WHERE "data_type" LIKE '%AGE%';
    
  • 如果用户定义类型被删除,而某个查询直接引用了该类型的列,则该查询将失败。未直接引用已删除类型列的查询将正常运行。

示例

使用 DROP TYPE 命令删除 age 用户定义的类型:

DROP TYPE age;