【问题标题】:DBeaver / PostgreSQL: "Error: database already exists", but I can't find itDBeaver / PostgreSQL:“错误:数据库已存在”,但我找不到
【发布时间】:2020-09-10 18:06:34
【问题描述】:

我想通过右键单击PostgreSQL并选择创建数据库来创建名为“President”的数据库。

但是,我在下面的屏幕打印中得到了错误。

我可以创建具有其他名称的数据库,例如 SomeOtherDatabaseSomeOtherDatabase2(参见屏幕图)。

任何想法如何找到和删除似乎已经存在的数据库“总统”?

更新!!

如果我执行

select * from pg_database 

我得到以下结果:

所以数据库“总统”似乎确实存在。 (同时我删除了 someOtherDatabasesomeOtherDatabase2。)

但是,如果我执行

drop database President

我明白了:

【问题讨论】:

    标签: sql database postgresql create-table dbeaver


    【解决方案1】:

    您可以右键单击postgres 数据库并选择edit connection 选项。在 PostgreSQL 选项卡下,选中 Show all databases 选项。

    【讨论】:

    • 为什么不是默认设置?
    【解决方案2】:

    您可以查询catalog view pg_database查看数据库是否已经存在:

    select datname from pg_database WHERE datname = 'president'
    

    然后用drop database删除它:

    drop database president;
    

    请注意,Postgres 的 drop database 语法支持 if exists 子句,这在您的用例中可能会派上用场:

    drop database if exists president;
    

    【讨论】:

    • 谢谢。该数据库似乎确实存在,因为“从 pg_database WHERE datname = 'President' 中选择 datname”返回“President”。但“删除数据库总统”返回“SQL 错误 [3D000]:错误:数据库“总统”不存在”..
    • @Frank:你用双引号创建了你的数据库,所以现在的名字是case sensitive。您需要使用drop database "President"。以后你应该avoid double quoted identifiers
    • @– a_horse_with_no_name,成功了!!非常感谢 :-) 我完全感到困惑,知道这绝对有用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-29
    • 1970-01-01
    • 2012-08-27
    • 2022-12-31
    • 2021-06-17
    • 2020-05-30
    相关资源
    最近更新 更多