一尘不染

Postgres删除表语法错误

sql

Heroku上的Postgres 9.3.2。

可以肯定的是我只是个白痴,但是我似乎无法弄清楚为什么我的语法错误。

db=> \dt
              List of relations
 Schema |    Name    | Type  |     Owner      
--------+------------+-------+----------------
 public | device     | table | admin
 public | post       | table | admin
 public | user       | table | admin
(3 rows)

// why does this fail?
db=> drop table user; 
ERROR:  syntax error at or near "user"
LINE 1: drop table user;

// does the right thing
db=> drop table error; 
ERROR:  table "error" does not exist

阅读 120

收藏
2021-03-10

共1个答案

一尘不染

User是Postgres中的保留关键字。如果要引用名为 user实际 表,则必须将其用引号引起来: __

DROP TABLE "user";

如果可以的话,最好不要使用保留关键字作为表名。通常最终会在以后产生一些奇怪的问题。 Users可能是一个更好的表名。

2021-03-10