DROP DATABASE 语句
1. DROP {DATABASE | SCHEMA} [IF EXISTS] db_name
DROP DATABASE 删除数据库中的所有表并删除数据库。使用这个语句要非常小心! 要使用 DROP DATABASE,需要数据库上的 DROP 权限。DROP SCHEMA 是 DROP DATABASE 的同义词。
重要
删除数据库时,不会自动删除专门为该数据库授予的权限。必须手动删除它们。
IF EXISTS 用于防止数据库不存在时发生错误。
如果删除了默认数据库,则默认数据库未设置(DATABASE() 函数返回 NULL)。
如果对符号链接数据库使用 DROP DATABASE 语句,则链接和原始数据库都会被删除。
DROP DATABASE 返回被删除的表的数量。
DROP DATABASE 语句从给定的数据库目录中删除MySQL本身在正常操作期间可能创建的文件和目录。这包括如下所示扩展名的所有文件:
.BAK .DAT .HSH .MRG .MYD .MYI .cfg .db .ibd .ndb
如果在 MySQL 删除刚才列出的文件或目录后,数据库目录中还有其他文件或目录,则无法删除数据库目录。在这种情况下,必须手动删除所有剩余的文件或目录,并再次执行 DROP DATABASE 语句。
删除数据库不会删除在该数据库中创建的任何 TEMPORARY 表。当创建临时表的会话结束时,临时表将被自动删除。
还可以使用 mysqladmin 删除数据库。
DROP EVENT 语句
1. DROP EVENT [IF EXISTS] event_name
该语句删除名为 event_name 的事件。该事件立即停止活动,并从服务器中完全删除。
如果事件不存在,则会产生错误 ERROR 1517 (HY000): Unknown event 'event_name'。也可不使用 IF EXISTS 语句, 重载此行为,对不存在的事件生成警告。
该语句要求要具有删除的事件所属模式的 EVENT 权限。
DROP FUNCTION 语句
DROP FUNCTION 语句用于删除存储函数和用户定义函数(UDF):
有关删除存储函数的信息,请参阅 “DROP PROCEDURE 和 DROP FUNCTION 语句”。
有关删除用户定义函数的信息,请参阅 “用于用户定义函数的 DROP FUNCTION 语句”。
DROP INDEX 语句
1. DROP INDEX index_name ON tbl_name
2. [algorithm_option | lock_option] ...
3.
4. algorithm_option:
5. ALGORITHM [=] {DEFAULT | INPLACE | COPY}
6.
7. lock_option:
8. LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
DROP INDEX 语句从表 tbl_name 中删除名为 index_name 的索引。该语句与 ALTER TABLE 语句联合使用删除索引。
要删除主键,索引名总是 PRIMARY,它必须用引号引用为标识符,因为 PRIMARY 是一个保留字:
1. DROP INDEX `PRIMARY` ON t;
NDB 表的变宽列上的索引会被在线删除;也就是说,不需要任何表复制。该表没有针对来自其他 NDB Cluster API 节点的访问进行锁定,尽管它在操作期间针对同一API节点上的其他操作进行锁定。这是由服务器自动完成,不需要使用任何特殊的 SQL 语法或服务器选项来导致它发生。
在修改表的索引时,可能会给出 ALGORITHM 和 LOCK 子句来影响表的复制方法和读写的并发级别。它们的含义与用于 ALTER TABLE 语句相同。
MySQL NDB Cluster 与标准MySQL服务器相同,支持使用 ALGORITHM=INPLACE 语法在线操作。