DROP PLACEMENT POLICY
DROP PLACEMENT POLICY 用于删除之前创建的放置策略(placement policy)。
Note
此功能在 平凯数据库云服务 Starter 和 平凯数据库云服务 Essential 实例中不可用。
语法
- DropPolicyStmt
- PolicyName
示例
只有当放置策略未被任何表或分区引用时,才能删除该放置策略。
CREATE PLACEMENT POLICY p1 FOLLOWERS=4;
CREATE TABLE t1 (a INT PRIMARY KEY) PLACEMENT POLICY=p1;
DROP PLACEMENT POLICY p1; -- 此语句会失败,因为放置策略 p1 仍被引用。
-- 查询哪些表和分区引用了该放置策略。
SELECT table_schema, table_name FROM information_schema.tables WHERE tidb_placement_policy_name='p1';
SELECT table_schema, table_name FROM information_schema.partitions WHERE tidb_placement_policy_name='p1';
ALTER TABLE t1 PLACEMENT POLICY=default; -- 从 t1 表移除放置策略。
DROP PLACEMENT POLICY p1; -- 删除成功。Query OK, 0 rows affected (0.10 sec)
Query OK, 0 rows affected (0.11 sec)
ERROR 8241 (HY000): Placement policy 'p1' is still in use
+--------------+------------+
| table_schema | table_name |
+--------------+------------+
| test | t1 |
+--------------+------------+
1 row in set (0.00 sec)
Empty set (0.01 sec)
Query OK, 0 rows affected (0.08 sec)
Query OK, 0 rows affected (0.21 sec)MySQL 兼容性
该语句是 TiDB 对 MySQL 语法的扩展。