删除数据库
可以使用命令 DROP DATABASE 删除数据库。请注意,在删除数据库之前,必须先删除所有数据库别名。
语法
| 命令 | 语法 |
|---|---|
|
|
示例
删除数据库
要删除数据库 customers,请运行以下命令
DROP DATABASE customers
|
可以使用此命令删除标准数据库和复合数据库。 |
DROP DATABASE 命令会完全删除数据库。因此,它不再显示在命令 SHOW DATABASES 提供的列表中。
SHOW DATABASES YIELD name
+---------------------+ | name | +---------------------+ | "movies" | | "neo4j" | | "system" | +---------------------+
使用 IF EXISTS 删除数据库
DROP DATABASE 命令可以选择性地幂等,默认行为是在数据库不存在时返回错误。
将 IF EXISTS 附加到命令可确保在数据库不存在时不返回错误,并且不会发生任何事情。
如果存在一个指向数据库的现有别名,则始终会返回错误。在这种情况下,需要在删除数据库之前删除别名。
DROP DATABASE customers IF EXISTS
使用DUMP DATA或DESTROY DATA删除数据库
通过将DUMP DATA附加到命令DROP DATABASE,可以在删除数据库之前创建存储文件转储。
DROP DATABASE movies DUMP DATA
这些转储等效于由neo4j-admin database dump生成的转储,并且可以使用neo4j-admin database load命令以类似的方式恢复。
在 Neo4j 中,转储可以存储在由server.directories.dumps.root设置指定的目录中(默认情况下,存储转储的路径为<neo4j-home>/data/dumps)。
选项DESTROY DATA明确请求命令的默认行为。
使用IF EXISTS和DUMP DATA/DESTROY DATA删除数据库
选项IF EXISTS和DUMP DATA/DESTROY DATA也可以组合使用。
一个示例可能如下所示
DROP DATABASE customers IF EXISTS DUMP DATA
删除具有指向它的本地数据库别名的数据库
有两种方法可以删除作为本地数据库别名目标的数据库
-
首先删除本地数据库别名,然后使用
DROP DATABASE name删除数据库。指向数据库的远程数据库别名不会影响数据库的删除,因此无需事先删除。 -
使用
DROP DATABASE name CASCADE ALIASES还可以删除在删除数据库的同时指向它的本地数据库别名。如果任何被删除的数据库别名是复合数据库的组成部分,则不会删除这些复合数据库。此命令不会影响指向正在删除的数据库的远程数据库别名。它们只会像针对不存在的数据库创建一样,不再解析其目标。
使用CASCADE ALIASES需要DROP ALIAS权限。有关权限的更多信息,请参阅别名管理权限。
以下示例创建了一个数据库movies和一个指向它的本地数据库别名films
CREATE DATABASE movies
CREATE ALIAS films FOR DATABASE movies
然后,可以使用以下命令删除数据库movies和本地数据库别名films
DROP DATABASE movies CASCADE ALIASES
选项RESTRICT明确请求命令的默认行为。
|
对于标准数据库,在使用 |