错误:"SELECT"处或附近的语法错误

Y_K*_*_KL 7 sql database postgresql

postgres我真的很新.这个问题看起来很简单,但我不知道我哪里出错了.

我创建的表如下:

  CREATE TABLE IF NOT EXISTS t(
        tn VARCHAR(30) NOT NULL,
        PRIMARY KEY(tn)
    );
Run Code Online (Sandbox Code Playgroud)

如果实例不存在,我想插入一个实例.这是我的代码:

INSERT INTO t (tn) 
VALUES 
(SELECT 'q' WHERE NOT EXISTS (SELECT * FROM t WHERE tn = 'q')) ;
Run Code Online (Sandbox Code Playgroud)

并且psql控制台一直给我错误

ERROR:  syntax error at or near "SELECT"
Run Code Online (Sandbox Code Playgroud)

我已经单独检查了每一段代码,例如两者

SELECT 'q' WHERE NOT EXISTS (SELECT * FROM t WHERE tn = 'q');
Run Code Online (Sandbox Code Playgroud)

INSERT INTO t (tn) VALUES ('p');
Run Code Online (Sandbox Code Playgroud)

运行没有错误.但是当我把它们放在一起时会发生错误.

有谁知道我错在哪里..?

Boh*_*ian 5

VALUES了,括号...

INSERT INTO t (tn) 
SELECT 'q' WHERE NOT EXISTS (SELECT * FROM t WHERE tn = 'q');
Run Code Online (Sandbox Code Playgroud)