当前位置: 首页 > news >正文

oracle if 插入,Oracle有条件地插入数据

方法一: declare iExists int; begin select count(*) into iExists from表 where 条件; if iExists=0 then insert into 表 ( ... ) values ( ... ); end if; end; 声明iExists变量,通过条件在表中找出有重复的数量,如果没有,就把数据插入表中 方法二:

方法一:

declare

iExists int;

begin

select count(*) into iExists from 表 where 条件;

if iExists=0 then

insert into 表 ( ... ) values ( ... );

end if;

end;

声明iExists变量,通过条件在表中找出有重复的数量,如果没有,就把数据插入表中

方法二:

merge into 目标表

using 源表 | (select 语句)

on ( 条件 )

when matched then update set 列=值

delete where ( 列=值 )

when not matched then insert ( 列... ) values ( 值... );

利用merge 方法,匹配的更新或删除,不匹配的插入数据

oracle不支持insert into ... not exists 方法

---------------------------------------------------------------------

MSSQLServer 方法:

if not exists(select * from 表 where 条件... ) insert into 表 ( 列 ... ) values ( 值 ... );

或者

declare @iExists int

select @iExists=COUNT(*) from 表 where 条件... ;

if @iExists=0

begin

insert into 表 ( 列 ...) values ( 值 ... );

end;

----------------------------------------------------------------------------

注:插入的先后不同,会影响结果 (Oracle 与MSSQL不一样)

1、

merge into student

using (select * from dual)

on (student.stno=1 and (student.stname='aaaa' or student.stname is null))

when not matched then

insert (stno,stname,birth )

values (1,'aaaa',sysdate);

2、

merge into student

using (select * from dual)

on (student.stno=1 and (student.stname='' or student.stname is null))

when not matched then

insert (stno,stname,birth )

values (1,'',sysdate);

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

相关文章:

  • oracle修复sysaux表空间,修复受损的SYSAUX表空间
  • matlab runge现象,龙格现象matlab算法.doc
  • oracle支持分区移动,Oracle 12c 新特性 --- 移动分区支持数据过滤
  • linux如何打开控制端口tty2,linux – 如何检测属于gsm/3g-modem的tty是数据还是控制端口?...
  • linux服务器安装xfce,Ubuntu 16.10安装Xfce桌面与VNC远程连接
  • linux个图形界面对比,Linux对比文件,很好用的图形界面
  • Linux配置与管理samba服务器,Linux Samba服务器配置与管理
  • linux邮箱客户端配置,Linux下安装使用Mutt邮件客户端并配置邮件警报功能
  • linux heartbeat rpm,Heartbeat 3.0.3 介绍及rpm
  • linux rsh用法,Linux中rsh远程shell命令的使用技巧解析
  • C语言字符输入回车时停止,解决C语言输入单个字符屏蔽回车符的问题
  • 二分法查找字符串 c语言,c语言二分法如何实现查找数组元素
  • c++语言常量,C++常量(constant)
  • 64平台的c语言int类型值比32平台大,C语言数据类型32位和64位不同
  • c语言输入10个数从小,C语言中,从键盘输入10个数,从小到大排列输出,怎
  • download使用浅析
  • ES6--对象的扩展
  • IP路由与转发
  • Java 多线程编程之:notify 和 wait 用法
  • Laravel 中的一个后期静态绑定
  • Redis中的lru算法实现
  • sessionStorage和localStorage
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • 编写高质量JavaScript代码之并发
  • 初识 webpack
  • 动态规划入门(以爬楼梯为例)
  • 高性能JavaScript阅读简记(三)
  • 基于 Babel 的 npm 包最小化设置
  • 来,膜拜下android roadmap,强大的执行力
  • 排序算法学习笔记
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • #VERDI# 关于如何查看FSM状态机的方法
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • $GOPATH/go.mod exists but should not goland
  • $nextTick的使用场景介绍
  • (03)光刻——半导体电路的绘制
  • (11)MSP430F5529 定时器B
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (排序详解之 堆排序)
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (三)SvelteKit教程:layout 文件
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (四)JPA - JQPL 实现增删改查
  • (四)汇编语言——简单程序
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • (一)十分简易快速 自己训练样本 opencv级联haar分类器 车牌识别
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (转)为C# Windows服务添加安装程序
  • .bat批处理(九):替换带有等号=的字符串的子串
  • .mat 文件的加载与创建 矩阵变图像? ∈ Matlab 使用笔记
  • .Net core 6.0 升8.0
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .Net调用Java编写的WebServices返回值为Null的解决方法(SoapUI工具测试有返回值)