【问题标题】:PostgreSQL: Drop Database but DB is still there [duplicate]PostgreSQL:删除数据库但数据库仍然存在[重复]
【发布时间】:2012-01-28 09:57:19
【问题描述】:

我是 PostgreSQL 的新手,我试图理解它。我对 db 和 MySQL 很熟悉。

我正在尝试删除我创建的数据库,因为 psql 似乎忽略了我尝试通过 Django 推送的更改。

当我执行\l 时,我得到以下响应:

                                  List of databases
       Name       | Owner  | Encoding |   Collate   |    Ctype    | Access privileges 
------------------+--------+----------+-------------+-------------+-------------------
 postgres         | neurix | UTF8     | en_AU.UTF-8 | en_AU.UTF-8 | 
 test_db          | neurix | UTF8     | en_AU.UTF-8 | en_AU.UTF-8 | 
 template0        | neurix | UTF8     | en_AU.UTF-8 | en_AU.UTF-8 | =c/neurix        +
                  |        |          |             |             | neurix=CTc/neurix
 template1        | neurix | UTF8     | en_AU.UTF-8 | en_AU.UTF-8 | =c/neurix        +
                  |        |          |             |             | neurix=CTc/neurix
 template_postgis | neurix | UTF8     | en_AU.UTF-8 | en_AU.UTF-8 | 
(5 rows)

现在我想用

删除数据库“test_db”
DROP DATABASE test_db

但是当我之后执行\l 时,表格仍然存在,并且概览看起来差不多。

【问题讨论】:

  • 您可能还想尝试使用双引号:DROP DATABASE "mydb";

标签: postgresql psql


【解决方案1】:

您是否在DROP DATABASE test_db 之后键入了;? PostgreSQL 是否打印了对您的命令的响应?

【讨论】:

  • 谢谢 - ;不见了。
  • 这就是他们付给我大笔钱的原因。分号准时,每次。
  • 分号——每一种臭名昭著的语言的基石
  • 同样在我当前的版本 (11.2) 上,需要大写:drop database <name>; 失败,但 DROP DATABASE <name>; 成功。
  • 是的,我没有花几分钟但是 - 等待它 - 几个小时试图解决这个“错误”
【解决方案2】:

我在 Ubuntu 20.04 中使用 PostgreSQL 作为我的数据库的 Rails 6 应用程序时遇到了类似的问题。

当我运行命令时:

DROP DATABASE my-db;

数据库已成功删除,但仍保留数据库的架构。

所以当我运行命令时:

CREATE DATABASE my-db;

我检查了新创建的数据库中的表,我意识到它们仍然包含与之前删除的数据库相同的表,即使我没有运行任何迁移。

这是我修复它的方法

而不是运行命令:

DROP DATABASE my-db;

运行命令:

DROP DATABASE IF EXISTS my-db;

这将删除数据库及其对应的架构。

就是这样。

我希望这会有所帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-18
    • 1970-01-01
    相关资源
    最近更新 更多