Chinaunix首页 | 论坛 | 博客
  • 博客访问: 735559
  • 博文数量: 803
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 5015
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-28 10:29
文章分类

全部博文(803)

文章存档

2011年(1)

2008年(802)

我的朋友

分类:

2008-10-29 11:49:31


  Upsert是指由INSERT和UPDATE语句功能组合成的单个子句。Upsert模型在数据仓库中尤其有用,在数据仓库中我们需要下面的
  
  我们经常需要多个INSERT和SELECT(IAS)语句共同使用,这个时候upsert就非常有用。这是因为upsert不需要每次一行地处理数据,它能够将整个事务作为一个单一的集合来处理。
  
  下面让我们用一个例子来说明upsert。假设我们需要一个NEW_CUSTOMERS表并将其数据放到另外两个表中。RICH_CUSTOMERS表由NEW_CUSTOMERS表中credit_limit >100000的那些客户的数据组成,而CUSTOMER表则由所有余下客户的数据组成。
  
  在8i中,这个操作需要两个语句:
  
  INSERT INTO
    rich_customers
  (cust_id,cust_credit_limit)
  SELECT cust_id, cust_credit_limit
  FROM new_customers
  WHERE credit_limit >=100000;
  
  INSERT INTO customers SELECT * FROM new_customers;
  
  在9i中,upsert只要用一条语句就可以实现这个要求:
  
  INSERT
  FIRST WHEN
    credit_limit >=100000
  THEN INTO
    rich_customers
  VALUES(cust_id,cust_credit_limit)
    INTO customers
  ELSE
    INTO customers SELECT * FROM new_customers;
【责编:admin】

--------------------next---------------------

阅读(492) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~