2016-11-26 81 views
3

我對postgres真的很陌生。這個問題看起來很簡單,但我不知道我錯在哪裏。錯誤:在「SELECT」處或附近出現語法錯誤

我作爲創建的表如下:

CREATE TABLE IF NOT EXISTS t(
     tn VARCHAR(30) NOT NULL, 
     PRIMARY KEY(tn) 
    ); 

我想如果實例不存在插入一個實例。這裏是我的代碼:

INSERT INTO t (tn) 
VALUES 
(SELECT 'q' WHERE NOT EXISTS (SELECT * FROM t WHERE tn = 'q')) ; 

而且PSQL控制檯不斷給我的錯誤

ERROR: syntax error at or near "SELECT" 

我已逐一檢查每一段代碼,例如兩個

SELECT 'q' WHERE NOT EXISTS (SELECT * FROM t WHERE tn = 'q'); 

INSERT INTO t (tn) VALUES ('p'); 

run wi錯誤。但是當我將它們放在一起時會發生錯誤。

有誰知道我錯了什麼地方..?

+0

雞蛋裏挑骨頭,但 「Postgres的」 或 「PostgreSQL的」。沒有「postgre」或「postgress」這樣的東西。是的,我們知道這個名字很愚蠢。 –

回答

3

失去VALUES和括號...

INSERT INTO t (tn) 
SELECT 'q' WHERE NOT EXISTS (SELECT * FROM t WHERE tn = 'q'); 
相關問題