sql - 检查条目是否存在,如果是,则更新,如果不是插入

时间:2011-09-28 21:05:39

标签: sql

我想知道是否有办法可以在一个sql语句中执行以下操作。

我正在解析csv文件,以便将产品插入到数据库中。有没有办法我可以检查一下 X 表中的条目是否等于 N ,如果这样更新其余的列,否则插入它?

问候

菲尔

3 个答案:

答案 0 :(得分:3)

此类操作有时称为“UPSERT”。 SQL标准的方法是使用MERGE语句,但不幸的是它尚未广泛实现。

有些数据库已经添加了自己的方法,例如非标准的MySQL扩展REPLACEINSERT ... ON DUPLICATE KEY UPDATE

答案 1 :(得分:1)

MERGE语句可以帮助您,但它仅适用于SQL Server 2008 R2。否则,您需要将其视为一个缓慢变化的维度,并将数据带入临时表并比较或使用集成服务包来完成工作。

答案 2 :(得分:0)

这样的事情对你有用吗?

if(update myTable where x='n')
else{
 insert into myTable(x,y,z) values(1,2,3)
}

更新查询将无论如何运行,如果它无法更新该记录,则会返回false,从而导致它进行插入。