1.语法格式

# 创建数据库
create database <database_name>;

# 删除数据库
create database <database_name>;

# 调整数据库
ALTER DATABASE name [ [ WITH ] option [ ... ] ]
   where option can be:
       CONNECTION LIMIT connlimit
   ALTER DATABASE name RENAME TO new_name
   ALTER DATABASE name OWNER TO new_owner
   ALTER DATABASE name SET TABLESPACE new_tablespace

   ALTER DATABASE name SET configuration_parameter { TO | = } { value | DEFAULT }
   ALTER DATABASE name SET configuration_parameter FROM CURRENT
   ALTER DATABASE name RESET configuration_parameter
   ALTER DATABASE name RESET ALL

2. 案例说明

2.1 创建数据库

# 创建数据库,提示成功
create database temp1;
# CREATE DATABASE

2.2 删除数据库

drop database temp3;
# DROP DATABASE

2.3 修改数据库名称

  1. 空库直接修改数据库名(未连接)
alter database temp1 rename to temp2;
# ALTER DATABASE
  1. 连接情况修改数据库名称
shop=# \c temp2;
您现在已经连接到数据库 "temp2",用户 "postgres".

temp2=# alter database temp2 rename to temp3;
ERROR:  current database cannot be renamed
temp2=#
temp2=# \c shop
您现在已经连接到数据库 "shop",用户 "postgres".
shop=# alter database temp2 rename to temp3;
ALTER DATABASE

综合以上两种情况,我们可以得到一个简单的小结论:PostgreSQL当存在客户端连接指定数据库的连接时,不可以修改库名;不存在连接时,可以修改库名。

参考资料:

  1. https://www.postgresql.org/docs/14/sql-alterdatabase.html