跳转到主要内容
删除现有实体。如果指定了 IF EXISTS 子句,那么即使实体不存在,这些查询也不会返回错误。如果指定了 SYNC 修饰符,则会立即删除该实体。

DROP DATABASE

先删除 db 数据库中的所有表,然后再删除 db 数据库本身。 语法:
DROP DATABASE [IF EXISTS] db [ON CLUSTER cluster] [SYNC]

DROP TABLE

删除一个或多个表。
若要撤销删除表的操作,请参见 UNDROP TABLE
语法:
DROP [TEMPORARY] TABLE [IF EXISTS] [IF EMPTY]  [db1.]name_1[, [db2.]name_2, ...] [ON CLUSTER cluster] [SYNC]
限制:
  • 如果指定了 IF EMPTY 子句,服务器只会在接收到该查询的副本上检查该表是否为空。
  • 一次删除多个表不是原子操作;也就是说,如果删除某个表失败,后续的表将不会被删除。

DROP DICTIONARY

删除字典。 语法:
DROP DICTIONARY [IF EXISTS] [db.]name [SYNC]

DROP USER

删除一个用户。 语法:
DROP USER [IF EXISTS] name [,...] [ON CLUSTER cluster_name] [FROM access_storage_type]

DROP ROLE

删除角色。已删除的角色会从所有已授予该角色的实体中撤销。 语法:
DROP ROLE [IF EXISTS] name [,...] [ON CLUSTER cluster_name] [FROM access_storage_type]

DROP ROW POLICY

删除 ROW POLICY。删除后,系统会从所有已分配该策略的对象中撤销该策略。 语法:
DROP [ROW] POLICY [IF EXISTS] name [,...] ON [database.]table [,...] [ON CLUSTER cluster_name] [FROM access_storage_type]

DROP MASKING POLICY

删除数据脱敏策略。 语法:
DROP MASKING POLICY [IF EXISTS] name ON [database.]table [ON CLUSTER cluster_name] [FROM access_storage_type]

DROP QUOTA

删除一个 QUOTA。删除后,系统会从所有已分配该 QUOTA 的实体中将其撤销。 语法:
DROP QUOTA [IF EXISTS] name [,...] [ON CLUSTER cluster_name] [FROM access_storage_type]

DROP SETTINGS PROFILE

删除一个 SETTINGS PROFILE。已删除的 SETTINGS PROFILE 会从所有已分配该 profile 的对象中撤销。 语法:
DROP [SETTINGS] PROFILE [IF EXISTS] name [,...] [ON CLUSTER cluster_name] [FROM access_storage_type]

DROP VIEW

删除视图。也可以使用 DROP TABLE 命令删除视图,但 DROP VIEW 会检查 [db.]name 是否是视图。 语法:
DROP VIEW [IF EXISTS] [db.]name [ON CLUSTER cluster] [SYNC]

DROP FUNCTION

删除通过 CREATE FUNCTION 创建的用户自定义函数。 系统函数无法删除。 语法
DROP FUNCTION [IF EXISTS] function_name [on CLUSTER cluster]
示例
CREATE FUNCTION linear_equation AS (x, k, b) -> k*x + b;
DROP FUNCTION linear_equation;

DROP NAMED COLLECTION

删除命名集合。 语法
DROP NAMED COLLECTION [IF EXISTS] name [on CLUSTER cluster]
示例
CREATE NAMED COLLECTION foobar AS a = '1', b = '2';
DROP NAMED COLLECTION foobar;
最后修改于 2026年6月10日