ALTER DATABASE
更新时间:2026-06-24
修改数据库的属性
语法
SQL
1 ALTER DATABASE name [ WITH CONNECTION LIMIT connlimit ]
2
3 ALTER DATABASE name RENAME TO newname
4
5 ALTER DATABASE name OWNER TO new_owner
6
7 ALTER DATABASE name SET TABLESPACE new_tablespace
8
9 ALTER DATABASE name SET parameter { TO | = } { value | DEFAULT }
10 ALTER DATABASE name SET parameter FROM CURRENT
11 ALTER DATABASE name RESET parameter
12 ALTER DATABASE name RESET ALL
13 ```
14
15
16
17## 描述
18
19`ALTER DATABASE`修改一个数据库的属性。
20
21 第一个语句修改数据库的连接数。只有数据的所有者或者数据库管理员可以更改此设置。
22
23 第二个语句修改数据库的名字。只有数据库的所有者或者数据库管理员可以重命名数据库;非数据库管理员必须拥有 `CREATEDB`权限。不能修改当前数据库的名字,请先连接到其他的数据库。
24
25 第三个语句修改数据库的所有者。要修改所有者,你必须是新角色的直接或者间接的成员, 而且必须有 `CREATEDB`的权限。(数据库管理员可以自动拥有所有的权限。)
26
27 第四个语句修改数据库的默认表空间。只有数据库的所有者或者数据库管理员可以修改默认表空间,你还需要在新的表空间上有创建的权限。这个命令会将这个数据库所有在默认表空间的表和索引都移到新的表空间。注意,不在默认表空间的表和索引不受影响。
28
29 剩下的语句是用来修改PalopgMPP数据库会话级别的参数默认值。当一个会话在数据库开启后,这个会话提供的参数值将成为默认参数值。数据库在配置文件(`palopgsql.conf`)配置的默认值将被覆盖。只有数据库所有者或者数据库管理员才能修改会话默认值。某些参数不能用这种方式设置,或者只能被数据库管理员设置。
30
31
32
33## 参数
34
35该SQL命令参数见下
36
37 `name`
38 : 将要被修改属性的数据库名称。
39
40 `connlimit`
41 : 最大并发连接数。缺省值-1表示没有限制
42
43 `parameter value`
44 : 将指定配置参数的数据库的会话默认值设置为给定值。如果这个值是 `DEFAULT`,或者是等效的`RESET`,数据库的特定设置会被删除,因此系统范围的默认设置将在新会话中继承。用`RESET ALL`来清除所有的数据库设置。
45
46 `newname`
47 : 新的数据库名。
48
49 `new_owner`
50 : 新的数据库所有者。
51
52 `new_tablespace`
53 : 新的数据库默认表空间。
54
55
56
57
58注意
59: 还可以为特定角色(用户)而不是数据库设置配置参数会话默认值。如果存在冲突,角色特定的设置将覆盖数据库特定的设置。参见`ALTER ROLE`.
60
61
62
63## 示例
64
65为数据库`mydatabase` 设置默认的模式搜索路径:
66
67 ``` sql
68 ALTER DATABASE mydatabase SET search_path TO myschema,public, pg_catalog;
69 ```
70
71
72
73兼容性说明
74: `ALTER DATABASE` 语句是PalopgMPP的扩展语句。
75
76
77
78相关SQL命令
79: `CREATE DATABASE`, `DROP DATABASE`, `SET`, `CREATE TABLESPACE`
评价此篇文章
