2014-01-10 18 views
12

Postgres 9.3.2 auf heroku.Postgres drop table Syntaxfehler

Ziemlich sicher, ich bin nur ein Idiot, aber ich kann nicht herausfinden, warum meine Syntax falsch ist.

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 

Antwort

18

User ist ein reserved keyword in Postgres. Sie werden es in Anführungszeichen setzen müssen, wenn Sie auf eine tatsächlichen Tabelle Benutzer Namen beziehen mögen:

DROP TABLE "user";

Wahrscheinlich am besten weg, als Tabellennamen verwenden, reservierte Schlüsselwörter zu bleiben, wenn Sie helfen können es. Es endet in der Regel seltsame Probleme auf der Straße. Users könnte ein besserer Name für eine Tabelle sein.

+0

Danke. Wusste ich nicht. Wird in 12 Minuten akzeptiert. – Derek