不能在postgres中删除表

时间:2014-01-29 18:45:07

标签: postgresql

我是postgresql的新手,我似乎无法放弃它。

db_dev=# \dt
          List of relations
 Schema |    Name     | Type  | Owner
--------+-------------+-------+-------
 public | DataSources | table | ted
 public | Emails      | table | ted
 public | Users       | table | ted
(3 rows)

当我尝试删除users表时,它会出错:

db_dev=# drop table Users;
ERROR:  table "users" does not exist

我做错了什么?

2 个答案:

答案 0 :(得分:22)

问题是您的Users表是大小写混合的(Postgres中的对象名称区分大小写)。如果没有表格名称,Postgres会将提供的名称折叠到"用户" - 这些名称不存在。引用表名的解决方案有效,不是因为用户是保留名称,而是因为通过引用它,你告诉Postgres放弃"用户"表而不是"用户"表

答案 1 :(得分:3)

看来你做得对,但你可以尝试这样做:

DROP TABLE IF EXISTS Users;

或者这个:

DROP TABLE IF EXISTS Public.Users;

如果存在将被删除,如果不存在,您将知道。