很多人喜欢用这样的方法来判断是否存在记录:

select count(*) into t_count from t where condition;

if t_count> 0 then ....

这种方法的问题在于:我们需要的仅仅是是否存在,而不是得到总记录数。查询记录总数付出了不必要的性能代价。

两种情况:

1. 如果判断是否存在记录后, 要查询记录中的某些列的信息,或者是决定要对表进行insert/update操作,典型的操作为:

a.

select count(*) into t_count from t where condition;if t_count> 0 then select cols into t_cols from t where condition;else otherstatement;end;b.

select count(*) into t_count from t where condition;if t_count> 0 then update ...;else insert ...;end;这两种操作,都可以采用直接操作,然后进行例外处理的方式,根本就不进行这个存在性判断!改写后的a.

begin select cols into t_cols from t where condition;exception when no_data_found then begin statement-block2; end; when others then begin raise error... end;end;改写后的b.

update t set ... where condition;IF SQL%NOTFOUND THEN insert into t ...END IF;或者:

begin insert into t ...exception when DUP_VAL_ON_INDEX then begin update t set ... end;end;这两种方法使用哪一种,取决于你认为哪种情况出现的可能更高。2. 如果判断是否存在记录来决定是否进行其它操作, 如下例

select count(*) into t_count from t where condition;if t_count> 0 then ....则可以改成这样的语句:

select count(*) into t_count from dual where exists(select 1 from t where condition);if t_count> 0 then ....使用改写后的语句,多数情形下应该会有比原来的语句更好的性能。(当然, 如果你要查询的表本身是一个单行或只有几行记录的表, 直接查询应该会更好)

oracle查询某表是否存在,oracle判断表中某记录是否存在的方法相关推荐

  1. php如何查询数据是否存在,PHP判断数据库中的记录是否存在的方法,php数据库_PHP教程...

    PHP判断数据库中的记录是否存在的方法,php数据库 本文实例讲述了PHP判断数据库中的记录是否存在的方法.分享给大家供大家参考. 具体实现代码如下: 复制代码 代码如下: $sql="se ...

  2. php判断记录,PHP判断数据库中的记录是否存在的方法,php数据库_PHP教程

    PHP判断数据库中的记录是否存在的方法,php数据库 本文实例讲述了PHP判断数据库中的记录是否存在的方法.分享给大家供大家参考. 具体实现代码如下: 复制代码 代码如下: $sql="se ...

  3. oracle如何查看表的字段是否存在,Oracle删除表、字段之前判断表、字段是否存在...

    Oracle删除表.字段之前判断表.字段是否存在 在Oracle中若删除一个不存在的表,如 "DROP TABLE tableName",则会提示: ORA-00942:表或视图不 ...

  4. Oracle查询字段以外的内容,Oracle查询字段内容为非数字的记录

    今天在一张3W多记录的表里查非数字的异常数据~数据库太水,记录一发,因为2.5使用人员误输入为2..5.... select t.routecardlist_id,trim(translate(RTR ...

  5. oracle 查询表里信息_查看ORACLE 数据库及表信息

    -- 查看ORACLE 数据库中本用户下的所有表SELECT table_name FROM user_tables; -- 查看ORACLE 数据库中所有用户下的所有表select user,tab ...

  6. oracle查询一小时内数据,ORACLE 查询近一天, 近半小时内的数据

    ORACLE 查询近一天, 近半小时内的数据 SELECT 字段 FROM 表名 WHERE 时间字段 BETWEEN SYSDATE-1 AND SYSDATE; // 查询一天内的数据 sysda ...

  7. oracle查询sql走索引吗,Oracle SQL不走索引小记

    sql执行计划不走索引 一.优化器认为走全表扫描更优. 在这种情况下,需要重新分析一遍表,更新表的状态,有助于优化器分析出正确的执行计划. analyze table tablename comput ...

  8. java oracle查询结果list取数,Oracle函数返回Table集合

    Oracle table()函数查询函数返回的结果集 2015年12月13日 22:42:51 warrenjiang 阅读数:7452 版权声明:本文为博主原创文章,未经博主允许不得转载. http ...

  9. oracle查询cpu占用率高,ORACLE杀掉cpu占用率高的session

    SPID一一system process id,表示该server process在OS层面的Porcess ID PID一一Oracle process id,可以理解Oracle给自己的进程的一个 ...

  10. Oracle查询示例内存等信息,Oracle基本信息检查

    1. 检查Windows下的Oracle相关服务的状态 主要服务包括: 2. 检查Oracle初始化参数 select * from v$parameter; 3. 检查Oracle的实例状态 sel ...

最新文章

  1. EXSI 连接硬件USB pass-through
  2. left join(左联接) left join(左联接) left join(左联接)
  3. Qt之布局管理——堆栈窗体
  4. Promise实战AJAX封装
  5. 命中注定码农路[一. 重新开始]
  6. React:Conditional Rendering(条件渲染)
  7. pom文件报错,错误如下:(org.apache.maven.project.MavenProject,org.apache.maven.archiver.MavenArchiveConfigurat
  8. Android Studio如何去除界面默认标题栏
  9. [转载]架构指南 : Java1.7+Eclipse luna + Maven 3.2.5 +spring 4.1.4
  10. 解析ES6箭头函数中的this
  11. 《丁丁历险记系列之委托》改编自《.NET委托:一个C#睡前故事》
  12. VScode Remote SSH连接失败
  13. CKEDITOR富文本编辑器+AJAX+JQUERY+ListView综合应用
  14. 用计算机制作演示文稿教案博客,《创作演示文稿》教学设计
  15. Python2—0704笔记
  16. web前端学习笔记26-事件类型——一般事件、页面事件、表单事件
  17. 肉价再次上涨 国家宏观调控成效遭受市场考验(转)
  18. 字节跳动2020春招后端开发工程师笔试复盘
  19. 国仁老猫:怎么制作抖音100W播放量的作品;首选需要精准定位。
  20. Design pattern : Singleton

热门文章

  1. 【木、碎生活】青春不朽
  2. sqlmap安装及简单使用实例
  3. 条码软件即时打印扫描条码打印空白的处理方法
  4. 办公室布线电脑网络布线方案
  5. Mac wireshark 工具下载安装
  6. 计算机蓝屏 代码0000a,Win7系统出现蓝屏代码0x000000a的原因及解决方法
  7. java实现代码在线编译器-从零开发(三)Web并发环境下的线程安全
  8. this和e.target
  9. Vue中Css的scoped的原理
  10. 添加vcsa7.0证书密钥记录