当尝试使用该WHERE NOT EXISTS子句来防止在列中添加具有重复值的行时age,我收到错误syntax error at or near "WHERE".
为什么会抛出语法错误?我正在使用Postgresql 9.1.
SQL
INSERT INTO live.users ("website", "age")
values ('abc', '123')
WHERE NOT EXISTS (SELECT age FROM live.users WHERE age = 123);
Run Code Online (Sandbox Code Playgroud)
错误
ERROR: syntax error at or near "WHERE"
LINE 6: WHERE NOT EXISTS (SELECT age FROM live.users W...
Run Code Online (Sandbox Code Playgroud) 我在postgresql中使用下面的命令创建一个表.
CREATE TABLE someTable (
id serial primary key,
col1 int NOT NULL,
col2 int NOT NULL,
unique (col1, col2)
);
Run Code Online (Sandbox Code Playgroud)
然后我执行2个插入语句.
insert into someTable (col1,col2) values(1,11),(1,12);
它的工作
insert into someTable (col1,col2) values(1,13),(1,14),(1,11);
得到错误(key(col1,col2)=(1,11)已经存在.
但我需要避免重复对.怎么可能?
我试试这个
x86_64-pc-linux-gnu上的PostgreSQL 9.5.0,由gcc编译的gcc(Ubuntu 4.8.2-19ubuntu1)4.8.2,64位和PostgreSQL 9.3,由gcc编译(Ubuntu 4.8. 2-19ubuntu1)4.8.2,64位
但我得到了错误
执行两个语句后我需要这样做.
(1,11),(1,12),(1,13),(1,14)
Run Code Online (Sandbox Code Playgroud)