Ошибка синтаксиса таблицы Postgres
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
Ответы
Ответ 1
User
является зарезервированным ключевым словом в Postgres. Вы должны будете поместить его в кавычки, если хотите обратиться к фактической таблице с именем пользователя:
DROP TABLE "user";
Наверное, лучше избегать использования зарезервированных ключевых слов в качестве имен таблиц, если вы можете им помочь. Обычно это заканчивается созданием странных проблем в будущем. Users
может быть лучшим именем для таблицы.