将唯一值插入数据库PGSQL / MSSQL

时间:2013-01-30 23:50:44

标签: sql sql-server postgresql insert-into not-exists

我正在尝试使用插入到不存在的位置在MSSQL和Postgresql DB中插入唯一记录。但是我收到的语法错误不正确,如下所示。我究竟做错了什么?

INSERT INTO settings (id, title, description)
VALUES  (1, 'imageHeight', 'Image Height')
WHERE NOT EXISTS (Select * from settings where id = 1);

错误: [Macromedia] [SQLServer JDBC驱动程序] [SQLServer]关键字“WHERE”附近的语法不正确。

1 个答案:

答案 0 :(得分:5)

试试这个:

INSERT INTO settings (id, title, description)
    SELECT 1, 'imageHeight', 'Image Height'
        WHERE NOT EXISTS (SELECT 1 FROM settings WHERE id = 1);

sql server sql fiddle

postgresql sql fiddle

WHERE是针对结果的过滤器,通常与INSERT操作无关。