【问题标题】:CREATE and DROP database won't work [duplicate]CREATE 和 DROP 数据库不起作用[重复]
【发布时间】:2014-01-10 22:08:00
【问题描述】:

我只想删除一些数据库,然后创建一个新的。

在 postgresql 9.1 版本中,首先运行这些命令来创建:

postgres=# createdb [dbname]

postgres=# CREATE DATABASE name

如此处所述Postgresql Documentation

现在,删除一些数据库:

postgres=# DROP DATABASE name

这里也有描述Postgresql Documentation

他们都没有工作。我错过了什么?

【问题讨论】:

  • 我认为你必须是超级用户
  • 当我登录 postgre 时,我使用 sudo -u postgres pqsl 登录,然后输入我的密码。你是这个意思吗?
  • @Randy,没有 Randy。键入这些命令时,没有任何反应。没有错误消息,没有警告,什么都没有。
  • 您需要用; 终止命令(而createdb 不是 SQL 语句,它是操作系统程序)
  • @a_horse_with_no_name,缺少冒号 omg!!!那行得通!令人难以置信的是,我们在出去询问之前如何不考虑任何可能性。谢了哥们。 :)

标签: sql database postgresql


【解决方案1】:

你忘记了分号。

postgres=# DROP DATABASE name;

SQL 命令可以跨越多行,并且仅在您以分号结尾时才会发送到服务器。这就是提示发生变化的原因:

postgres=# DROP DATABASE name
postgres-# 

看一下教程可能是个好主意。

另外,createdb 不是 SQL 命令。这是一个 shell 实用命令,为了方便起见,将 CREATE DATABASE 包装起来。

另见:

【讨论】:

    【解决方案2】:

    我认为您必须是超级用户,因为根据文档:

    用于创建新数据库:

    要创建数据库,您必须是超级用户或拥有特殊权限 CREATEDB 权限。见CREATE USER

    用于删除数据库

    DROP DATABASE 删除数据库。它会删除目录条目 数据库并删除包含数据的目录。 只能是 由数据库所有者执行

    阅读此tutorial,它会对您有所帮助。

    【讨论】:

    • 感谢您回答我的问题。本教程有帮助!谢谢!
    • @NiceGuy : 如果我的回答对您有帮助,请验证它,以帮助其他人
    • 该建议会很有用,但不能正确回答问题。问题完全不同。看我的回答。
    猜你喜欢
    • 2020-04-12
    • 2018-07-06
    • 2016-09-19
    • 2018-03-16
    • 1970-01-01
    • 2017-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多