2016-11-26 26 views
3

私はポストグルには本当に新しいです。質問はとてもシンプルに見えますが、どこが間違っているのかわかりません。エラー: "SELECT"またはその近くの構文エラー

I次のように作成したテーブル:

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コンソールは、私はインスタンスの両方

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

のために、個別のコードのすべての部分をチェックした

ERROR: syntax error at or near "SELECT" 

私にエラーを与え続けます

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

run wiエラーはありません。しかし、それらをまとめるとエラーが発生します。

誰かが私が間違ったところを知っていますか?

+0

Nitpickが、 "postgresの" または "PostgreSQLの" VALUESとブラケットを失います。 "postgre"や "postgress"といったものはありません。はい、私たちは名前がばかだと知っています。 –

答えて

3

は...

INSERT INTO t (tn) 
SELECT 'q' WHERE NOT EXISTS (SELECT * FROM t WHERE tn = 'q'); 
関連する問題