2016-11-26 75 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'); 
相关问题