2014-01-10 97 views
12

Postgres 9.3.2在heroku上。Postgres drop table語法錯誤

很確定我只是一個白癡,但我似乎無法弄清楚爲什麼我的語法錯了。

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 

回答

18

User是Postgres的一個reserved keyword。你必須把它放在引號,如果你想引用命名用戶實際表:

DROP TABLE "user";

可能是最好的使用保留的關鍵字作爲表名,如果你能幫助遠離它。它通常最終會造成奇怪的問題。 Users可能是表格的更好名稱。

+0

謝謝。不知道。將在12分鐘內接受。 – Derek