`
fcm915
  • 浏览: 111109 次
  • 性别: Icon_minigender_1
  • 来自: 泰安
社区版块
存档分类
最新评论

oracle 9i以上最有效率的if(exists)update else insert操作

阅读更多
我们有时需要对一个表进行更新操作,当某条记录不存在的时候进行插入操作,存在的时候更新纪录。通常我们使用if(exists(select ....)update....else insert,这样进行两遍表扫描,效率很低,在Oracle 9i以上有一个关键字merge,我们使用它就可以了。merge into 需要两个标操作,我们利用dual
merge into referer_stat L using  (select '1' from dual) N on (L.webid=234) WHEN MATCHED THEN UPDATE set count = count +1 WHEN NOT MATCHED THEN  INSERT (webid)values(234) ;

当表referer_stat中存在id=234记录时更新,不存在时插入纪录
分享到:
评论

相关推荐

    Oracle9i的简化SQL语法

    Oracle9i是Oracle数据库系统的一个重要版本,它在SQL语法上进行了一系列的改进和优化,以提高数据库管理和数据操作的效率。在这个版本中,Oracle引入了简化SQL语法,旨在让数据库管理员和开发人员能更方便地进行数据...

    if exists 用法

    if exists用法,里面包含各种需要用到if exists的情况。

    oracle9i的查询优化

    以上是Oracle 9i查询优化的一些核心概念和方法,实际应用中还需要结合具体业务场景和系统配置进行综合考虑,以实现最佳的性能效果。通过不断学习和实践,数据库管理员能够更有效地管理和优化Oracle 9i数据库,提升...

    Oracle9i spool续写实例

    在Oracle 10g及更高版本中,Spool引入了`CREATE`, `REPLACE`, 和 `APPEND` 参数,使得续写操作变得更加便捷。然而,在Oracle 9i及其之前版本,实现Spool续写较为复杂,通常需要一些技巧来完成。 在Oracle 10g中,`...

    oracle数据库关于exists使用

    在Oracle数据库中,`EXISTS` 是一种常用的子查询操作符,用于判断子查询是否有结果返回。如果子查询至少返回一行数据,则 `EXISTS` 表达式的结果为真;反之,则为假。 **1.1 Exists 的基本语法** ```sql SELECT ...

    oracle9i帮助文档

    除了以上介绍的内容之外,Oracle 9i还提供了其他实用功能,例如日期和时间处理函数、会话管理等。 综上所述,Oracle 9i作为一款成熟的关系型数据库管理系统,在数据管理和操作方面提供了丰富的功能,涵盖了从简单的...

    in和exists性能解析

    本文将深入解析Oracle中`IN`与`EXISTS`的性能差异,以及如何根据具体需求选择最合适的查询方式。 ### IN子句 `IN`子句主要用于比较一个表达式是否存在于另一个子查询的结果集中。当使用`IN`子句时,数据库引擎会...

    ORACLE_多表关联_UPDATE_语句

    Oracle数据库中的多表关联UPDATE语句是用于在一个表中更新数据时,依据另一个表的条件进行操作的关键技术。这在处理复杂的数据同步或修正场景时非常有用。在本例中,我们将探讨如何利用多表关联来更新数据,并通过...

    plsql(oracle 9i)

    5. **PL/SQL扩展**:PL/SQL增加了流程控制结构,如IF-THEN-ELSE、CASE语句,循环(FOR、WHILE),异常处理(BEGIN-EXCEPTION-END),以及存储过程、函数和包等。这些特性使得PL/SQL能够编写复杂的应用逻辑,直接在...

    《oracle+9i中文版基础培训教程》

    Oracle 9i是Oracle数据库的一个重要版本,发布于2001年,它引入了许多创新功能,对于初学者和专业人士都是一个很好的学习平台。本文将深入解析《Oracle 9i中文版基础培训教程》中涉及的关键知识点,帮助你全面了解...

    ORACLE多表关联的update语句

    总结,Oracle的多表关联UPDATE语句是一种强大的工具,能够有效处理跨表的数据更新需求,确保数据的一致性和准确性。在实际应用中,应根据业务逻辑和数据关系选择最适合的更新方法,并进行充分的测试以确保其正确性和...

    oracle中exists_和in的效率问题详解

    EXISTS 和 IN 都是 Oracle 中的集合操作符,但它们在使用和执行效率上有所不同。本文将深入探讨 EXISTS 和 IN 的使用场景、执行机制和效率问题。 EXISTS 的使用场景和机制 EXISTS 主要用于判断子查询是否存在记录...

    oracle数据库学习笔记总结

    MySQL的: drop table if exists 表名; SQL Server的: IF EXISTS (SELECT name FROM sysobjects WHERE name = '表名' AND type = 'U') DROP TABLE 表名; Oracle的: create or replace table 表名 ...; -- 直接写...

    mysql insert if not exists防止插入重复记录的方法

    本文将深入探讨如何使用特定的SQL语句,即“insert if not exists”逻辑,来防止插入已存在的记录。 首先,我们了解基本的`INSERT`语句,它是用来向表中添加新记录的。但在某些情况下,我们希望在插入之前检查目标...

    ORACLE UPDATE 语句语法与性能分析看法

    ### ORACLE UPDATE 语句语法与性能分析 #### 引言 在数据库管理与操作中,`UPDATE`语句是SQL语言中极为重要的组成部分,它允许我们修改已存在的记录,从而保持数据的时效性和准确性。Oracle数据库作为企业级应用中...

    if exists 判断对象是否存在

    通过以上示例可以看出,`IF EXISTS` 语句结合不同的目录视图可以有效地帮助我们检查各种数据库对象的存在性,从而在进行数据库维护时更加灵活高效。此外,了解这些目录视图的不同用途也有助于更好地管理和优化数据库...

    Oracle删除表、字段之前判断表、字段是否存在

    在Oracle中若删除一个不存在的表,如 “DROP TABLE tableName”,则会提示: ORA-00942:表或视图不存在 若在程序中执行该语句则会报异常,这就需要我们在删除表前先判断该表是否存在,若存在则删除. DECLARE num NUMBER;...

    oracle判断表是否存在.

    oracle 判断表 是否存在.亲自手写可用才上传的。

    ORACLE_UPDATE_语句语法与性能分析

    在Oracle数据库中,UPDATE语句是用于修改已存在数据的基本操作之一。在上述示例中,我们看到三种不同的UPDATE语句形式,它们各自处理特定的情况并具有不同的性能特点。 1) **最简单的形式**: 这种情况下,我们更新...

    oracle advanced sql 高级SQL教程 ORACLE官方教材

    6 Oracle9i Extensions to DML and DDL Statements Objectives 6-2 Review of the INSERT Statement 6-3 Review of the UPDATE Statement 6-4 Overview of Multitable INSERT Statements 6-5 Types of Multitable ...

Global site tag (gtag.js) - Google Analytics