创建复合数据库企业版Aura 不可用
组合数据库使用 Cypher® 管理命令进行管理。请注意,无法修改组合数据库的访问选项或数据库拓扑,因为这些属性是从其组成的底层数据库继承而来的。有关修改访问选项的信息,请参阅 更改数据库访问模式。有关数据库拓扑的信息,请参阅 在集群中创建数据库。
驱动程序和客户端应用程序连接组合数据库的方式与连接标准数据库相同。有关更多信息,请参阅不同 Neo4j 驱动程序和应用程序的手册。
创建组合数据库
可以使用 CREATE COMPOSITE DATABASE 创建组合数据库。
组合数据库名称遵循与 标准数据库 相同的规则。一个区别是,在 Cypher 5 中,如果不使用反引号包裹名称而直接使用点号的语法是不可用的。在 Cypher 5 中使用组合数据库时,点号和连字符都需要用反引号包裹。
|
不建议在组合数据库名称中使用点号( |
CREATE COMPOSITE DATABASE inventory
当创建好组合数据库后,它会显示在 SHOW DATABASES 命令提供的列表中。
SHOW DATABASES
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | name | type | aliases | access | address | role | writer | requestedStatus | currentStatus | statusMessage | default | home | constituents | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | "inventory" | "composite" | [] | "read-only" | "localhost:7687" | NULL | FALSE | "online" | "online" | "" | FALSE | FALSE | [] | | "library" | "composite" | [] | "read-only" | "localhost:7687" | NULL | FALSE | "online" | "online" | "" | FALSE | FALSE | ["library.sci-fi"] | | "neo4j" | "standard" | [] | "read-write" | "localhost:7687" | "primary" | TRUE | "online" | "online" | "" | TRUE | TRUE | [] | | "sci-fi" | "standard" | ["library.sci-fi"] | "read-write" | "localhost:7687" | "primary" | TRUE | "online" | "online" | "" | FALSE | FALSE | [] | | "system" | "system" | [] | "read-write" | "localhost:7687" | "primary" | TRUE | "online" | "online" | "" | FALSE | FALSE | [] | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
有关该命令返回的列的完整说明,以及如何按特定列对结果进行排序,请参阅 列出数据库。
要在组合数据库中创建数据库别名,请将该组合数据库作为别名的命名空间。有关在组合数据库中创建别名的信息,请参阅 管理组合数据库中的别名。
使用 IF NOT EXISTS 或 OR REPLACE 创建组合数据库
CREATE COMPOSITE DATABASE 命令是可选幂等的,默认行为是在数据库已存在时报错并失败。有两种方法可以规避此行为。
首先,在命令后附加 IF NOT EXISTS 可确保如果给定名称的数据库或数据库别名已存在,则不会返回错误,也不会执行任何操作。
CREATE COMPOSITE DATABASE inventory IF NOT EXISTS
由于名为 inventory 的组合数据库已经存在,因此这将不会创建新的组合数据库。
其次,在命令中添加 OR REPLACE 将导致删除任何现有的数据库并创建一个新的数据库。
CREATE OR REPLACE COMPOSITE DATABASE inventory
这等同于先运行 DROP DATABASE inventory IF EXISTS,然后再运行 CREATE COMPOSITE DATABASE inventory。
IF NOT EXISTS 和 OR REPLACE 的行为适用于标准数据库和组合数据库(例如,组合数据库可以替换标准数据库或其他组合数据库)。IF NOT EXISTS 还会检测是否存在具有给定名称的数据库别名,如果存在,则直接跳过而不报错。
|
这些命令中的 |
设置组合数据库的默认 Cypher 版本引入于 2025.06
您可以在创建组合数据库时为其设置默认 Cypher 版本。如果未指定,组合数据库的默认语言将设置为 DBMS 的默认语言。例如:
CREATE COMPOSITE DATABASE inventory DEFAULT LANGUAGE CYPHER 5
此命令创建一个名为 inventory 的组合数据库,并将默认语言设置为 Cypher 5。
要查看 DBMS 中每个数据库的默认 Cypher 版本,请使用 YIELD 子句运行 SHOW DATABASES 命令,并指定 defaultLanguage 列。例如
SHOW DATABASES YIELD name, defaultLanguage
| 名称 (name) | defaultLanguage |
|---|---|
|
|
|
|
|
|
|
|
|
|
行:5 |
|
有关配置 Cypher 版本的其他选项的更多信息,请参阅 配置 Cypher 默认版本。
|
将默认语言设置为 |