2017-07-28 126 views
1

這可能是一個簡單的問題,但我花了大量的時間試圖弄清楚什麼是錯的。Postgresql:在「用戶」處或附近的語法錯誤

我試圖在包含兩列用戶名和ID的表「用戶」上運行查詢。

INSERT INTO user 
    (username, id) 
VALUES 
    ("user", 2) 

我最終得到這個錯誤。

ERROR: syntax error at or near "user" 
LINE 1: INSERT INTO user 
        ^
********** Error ********** 

ERROR: syntax error at or near "user" 
SQL state: 42601 
Character: 13 

下面是參考

-- Table: public."user" 

-- DROP TABLE public."user"; 

CREATE TABLE public."user" 
(
    id integer NOT NULL, 
    username text COLLATE pg_catalog."default", 
    CONSTRAINT user_pkey PRIMARY KEY (id) 
) 
WITH (
    OIDS = FALSE 
) 
TABLESPACE pg_default; 

ALTER TABLE public."user" 
    OWNER to postgres; 
+0

嘗試用單引號插入值。就像插入用戶值('user',2)一樣。在作爲列使用的雙引號中包含的postgres值中。 –

回答

3

在Postgres的表創建user是保留SQL關鍵字。您應該避免使用保留關鍵字命名錶。作爲一種變通方法在這裏,你可以參照它時,用雙引號把你的表名:

INSERT INTO "user" 
    (username, id) 
VALUES 
    ('user', 2) 

我也切換到使用單引號的字符串文字。這有助於區分雙引號與單引號的用法。

相關問題