2016-12-08 10 views
0

ダブルネームを引用せずにテーブルを作成しようとだけそれが動作引用、構文エラーが生じている:構文エラーは、二重引用符なしでテーブルを作成

# CREATE TABLE user (
email TEXT, 
first_name TEXT, 
last_name TEXT, 
password TEXT, 
plan TEXT, 
gender gender 
); 
ERROR: syntax error at or near "user" 
LINE 1: CREATE TABLE user (
        ^
# CREATE TABLE "user" (
email TEXT, 
first_name TEXT, 
last_name TEXT, 
password TEXT, 
plan TEXT, 
gender gender 
); 
CREATE TABLE 
# \dt 
     List of relations 
Schema | Name | Type | Owner 
--------+------+-------+---------- 
public | user | table | postgres 
(1 row) 

これはUbuntuのとPosgreSQL 9.5.5出荷にあり16.10:

PostgreSQL 9.5.5 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 6.2.0-5ubuntu12) 6.2.0 20161005, 64-bit 

私はそれが間違っているものを、PostgreSQLでは名前を引用するが、私はこれを回避することはできません悪い考えです知っていますか?

答えて

2

userは、PostgreSQLを含む多くのRDBMSの予約語なので、二重引用符"でエスケープするか、別のものを選択する必要があります。

P.S.この識別子はテーブル名なので、userではなくusersを使用することをお勧めします。

+1

通常、テーブル名に複数の名前を使用しているので、テーブル名は 'users'にする必要があります –

+0

ああ、どうしてそんなことを考えていないのでしょうか? – Oxwivi

+0

私はOracleのDBA命名標準を使用しようとしていました。それは動作しないように見えます。 – Oxwivi

関連する問題