删除cmdline中的postgres数据库,仍然在\ list时看到数据库

时间:2014-07-12 23:31:24

标签: database postgresql

我正在尝试删除数据库并通过命令行创建一个新数据库。

我使用psql postgres登录,然后执行\ list,查看我创建的两个数据库的列表,我现在要删除它们。所以我尝试使用DROP DATABASE databasename;

执行该语句时没有看到任何错误,但是当我再次尝试\ list以查看该数据库是否被删除时,我仍然看到数据库存在。有人可以告诉我为什么会这样吗?以及如何确定删除这些数据库。

1 个答案:

答案 0 :(得分:0)

DROP DATABASE有几点需要注意:

  1. 它只能由数据库所有者执行。
  2. 当您或其他任何人连接到目标数据库时,无法执行此操作。
  3. 我通常使用 dropdb 命令行工具来执行此操作,因为它是DROP DATABASE的包装器,并不要求您先显式连接。它仍然有一个警告,即当前连接到数据库的用户不能,但它通常更快/更容易使用。

    我建议您尝试发出如下命令:

    dropdb -h <host> -U <user> -p <port> <name of db to drop>

    同样,您可以使用 createdb 命令行工具来创建数据库。

    有关DROP DATABASE的更多信息:http://www.postgresql.org/docs/current/static/sql-dropdatabase.html

    修改

    此外,值得查看 Postgres 日志(默认情况下可能在/ var / log / postgresql中)以查看是否有任何内容未在其中浮出水面结果