Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 重命名后,postgres数据库不存在_Postgresql_Psql - Fatal编程技术网

Postgresql 重命名后,postgres数据库不存在

Postgresql 重命名后,postgres数据库不存在,postgresql,psql,Postgresql,Psql,我不是sql新手,但我是postgresql的新手,我在使用psql时遇到了重命名数据库的问题。下面就是正在发生的事情 psql -d postgres postgres=# ALTER DATABASE db_1 RENAME TO db_2; ALTER DATABASE postgres=# \q 将db_1重命名为db_2 现在尝试登录到db_2时 psql -d db_2 -U postgres psql: error: could not connect to server:

我不是sql新手,但我是postgresql的新手,我在使用psql时遇到了重命名数据库的问题。下面就是正在发生的事情

psql -d postgres

postgres=# ALTER DATABASE db_1 RENAME TO db_2;
ALTER DATABASE

postgres=# \q
db_1
重命名为
db_2

现在尝试登录到db_2时

psql -d db_2 -U postgres

psql: error: could not connect to server: FATAL:  database "db_2" does not exist
同样,如果我尝试使用db_1

psql -d db_1 -U postgres

psql: error: could not connect to server: FATAL:  database "db_1" does not exist
因此,我重新登录:

psql -d postgres

postgres=# ALTER DATABASE db_2 RENAME TO db_1;
ALTER DATABASE

postgres=# \q
同样,从
db_2
db_1
,重命名工作非常完美

现在我可以重新登录到db_1

psql -d db_1 -U postgres

db_1=#
因此,我试图找出为什么数据库在将
db_1
重命名为
db_2

之后似乎返回
不存在的原因:

psql -d postgres

postgres=# ALTER DATABASE db_1 RENAME TO db_2;
ALTER DATABASE
做:

postgres=#\l


获取数据库列表。

ty这绝对解决了我的问题。这是一个案件敏感性问题。显然,无论键入什么类型,它都默认为小写-很高兴知道。@Bruce很高兴它被修复了,但仍然有一些东西没有加起来。您重命名为小写
重命名为db_2
并连接到小写
psql-d db_2-U postgres
,因此不应该出现错误。仅供参考,通过在双引号中引用数据库名称,例如“DB_2”,可以使用大写和混合大小写。问题是你必须在那里重复引用它。