我是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
我做错了什么?
答案 0 :(得分:22)
问题是您的Users表是大小写混合的(Postgres中的对象名称区分大小写)。如果没有表格名称,Postgres会将提供的名称折叠到"用户" - 这些名称不存在。引用表名的解决方案有效,不是因为用户是保留名称,而是因为通过引用它,你告诉Postgres放弃"用户"表而不是"用户"表
答案 1 :(得分:3)
看来你做得对,但你可以尝试这样做:
DROP TABLE IF EXISTS Users;
或者这个:
DROP TABLE IF EXISTS Public.Users;
如果存在将被删除,如果不存在,您将知道。