DBeaver / PostgreSQL:“错误:数据库已存在”,但我找不到它

Fra*_*ank 15 sql database postgresql create-table dbeaver

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

但是,我在下面的屏幕截图中收到错误。

我可以使用其他名称创建数据库,例如SomeOtherDatabase和SomeOtherDatabase2(请参阅屏幕截图)。

我有什么想法如何找到并删除似乎已经存在的数据库“总统”?

在此输入图像描述 在此输入图像描述

更新!!

如果我执行

select * from pg_database 
Run Code Online (Sandbox Code Playgroud)

我得到以下结果:

在此输入图像描述

所以数据库“President”似乎确实存在。(同时我删除了someOtherDatabase和someOtherDatabase2。)

但是,如果我执行

drop database President
Run Code Online (Sandbox Code Playgroud)

我得到:

在此输入图像描述

小智 49

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

  • 为什么这不是默认值? (14认同)
  • 耶稣基督!花了2个小时试图弄清楚。谢谢! (5认同)

Ome*_*r K 21

2023 更新

  1. 右键单击您的连接
  2. 单击“编辑连接”
  3. 左侧面板中,单击“连接设置”
  4. 选择 PostgreSQL 选项卡 选中“显示所有数据库”框

在此输入图像描述

在此输入图像描述


GMB*_*GMB 5

您可以查询目录视图pg_database来检查数据库是否已存在:

select datname from pg_database WHERE datname = 'president'
Run Code Online (Sandbox Code Playgroud)

并将其删除drop database:

drop database president;
Run Code Online (Sandbox Code Playgroud)

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

drop database if exists president;
Run Code Online (Sandbox Code Playgroud)

  • @Frank:您使用双引号创建了数据库,因此名称现在是[区分大小写](https://www.postgresql.org/docs/current/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS)。您需要使用“删除数据库“总统””。并且您将来应该[避免使用双引号标识符](https://wiki.postgresql.org/wiki/Don't_Do_This#Don.27t_use_upper_case_table_or_column_names) (2认同)