更改数据库

您可以使用 Cypher 命令 ALTER DATABASE 修改标准数据库。

语法

命令 语法

ALTER DATABASE

ALTER DATABASE name [IF EXISTS]
{
SET ACCESS {READ ONLY | READ WRITE} |
SET TOPOLOGY n PRIMAR{Y|IES} [m SECONDAR{Y|IES}] |
SET OPTION option value
}
[WAIT [n [SEC[OND[S]]]]|NOWAIT]
ALTER DATABASE name [IF EXISTS]
REMOVE OPTION option
[WAIT [n [SEC[OND[S]]]]|NOWAIT]

可以有多个 SET OPTIONREMOVE OPTION 子句,用于不同的选项键。

更改数据库访问模式

默认情况下,数据库在创建时具有读写访问模式。数据库在创建时可以通过配置设置 server.databases.default_to_read_onlyserver.databases.read_onlyserver.database.writable 限制为只读模式。有关详细信息,请参阅配置参数一节。

以读写访问模式创建的数据库可以更改为只读。要将其更改为只读,您可以使用带有子句 SET ACCESS READ ONLYALTER DATABASE 命令。随后,数据库访问模式可以使用子句 SET ACCESS READ WRITE 切换回读写。无论数据库在线还是离线,都允许随时更改数据库访问模式。

如果 ALTER DATABASE 命令和配置参数设置了冲突的模式(即一个设置为读写,另一个设置为只读),则数据库将变为只读并阻止写入查询。

修改访问模式仅适用于标准数据库,不适用于复合数据库。

将数据库访问模式更改为只读

要修改数据库访问模式,请使用以下命令,其中 customers 是数据库名称

ALTER DATABASE customers SET ACCESS READ ONLY

数据库访问模式可以在 SHOW DATABASES 命令的 access 输出列中查看。

SHOW DATABASES yield name, access
结果
+----------------------------+
| name        | access       |
+----------------------------+
| "customers" | "read-only"  |
| "movies"    | "read-write" |
| "neo4j"     | "read-write" |
| "system"    | "read-write" |
+----------------------------+

使用 IF EXISTS 更改数据库访问

ALTER DATABASE 命令是可选幂等的,默认行为是如果数据库不存在则报错。将 IF EXISTS 附加到命令可确保在数据库不存在时不会返回错误,也不会发生任何事情。

ALTER DATABASE nonExisting IF EXISTS
SET ACCESS READ WRITE

更改数据库拓扑

在集群环境中,您可以使用 ALTER DATABASE 命令更改托管数据库的服务器数量。有关更多信息,请参阅管理集群中的数据库

ALTER DATABASE 选项

ALTER DATABASE 命令可用于设置或移除数据库的特定选项。

表 1. 可用选项
描述

txLogEnrichment

FULL|DIFF|OFF

定义应用于事务日志以进行数据变更捕获 (CDC) 的丰富级别。有关丰富模式的详细信息,请参阅数据变更捕获手册 → 设置丰富模式

ALTER DATABASE 命令不能用于修改数据库的存储格式。有关如何更改数据库存储格式的详细信息,请参阅更改现有数据库的存储格式

修改为数据库设置的选项

ALTER DATABASE `movies`
SET OPTION txLogEnrichment 'FULL'

数据库设置的选项可以在 SHOW DATABASES 命令的 options 输出列中查看。

SHOW DATABASES yield name, options
表 2. 结果
名称 选项

"customers"

{}

"movies"

{txLogEnrichment: "FULL"}

"neo4j"

{}

"system"

{}

行数:4

移除为数据库设置的选项

ALTER DATABASE `movies`
REMOVE OPTION txLogEnrichment

REMOVE OPTION 子句使用 ALTER DATABASE 命令从数据库中移除指定的选项。

SHOW DATABASES YIELD name, options
表 3. 结果
名称 选项

"customers"

{}

"movies"

{}

"neo4j"

{}

"system"

{}

行数:4

© . All rights reserved.