请问一下,我要向一个表插入数据,根据ID,重复的更新,没有的插入,不使用COUNT后判断,能做到吗?
来源:互联网 发布:健身活动方案知乎 编辑:程序博客网 时间:2024/04/30 10:00
请问一下,我要向一个表插入数据,根据ID,重复的更新,没有的插入,不使用COUNT后判断,能做到吗?
Merge 命令可以用来用一个表中的数据来修改或者插入到另一个表。插入或者修改的操作取决于ON子句的条件。
该语句可以在同一语句中执行两步操作,可以减少执行多条INSERT 和UPDATE语句。
MERGE是一个确定性的语句,即不会在同一条MERGE语句中去对同一条记录多次做修改操作。
MERGE INTO 要合并的表/视图
USING 要更新或插入的数据源
ON 语句进行插入或更新的条件(注意条件要用括号括起来)
WHEN MATCHED THEN UPDATE 要更新的列(要加SET)
WHEN NOT MATCHED THEN INSERT 要插入的列(不用加表名)
例:
MERGE INTO T_DUTY_EMPLOYEES T
USING V_DUTY_EMPLOYEES V
ON (T.ID = V.ID)
WHEN MATCHED THEN
UPDATE
SET T.PROVINCE = V.PROVINCE,
T.CITY = V.CITY,
T.DUTYDAY = V.DUTYDAY,
T.DUTYTIME = V.DUTYTIME,
T.DUTYAREA = V.DUTYAREA,
T.EMPLOYEENAME = V.EMPLOYEENAME,
T.EMPLOYEEID = V.EMPLOYEEID,
T.EMPLOYEETEL = V.EMPLOYEETEL,
T.BAK = V.BAK
WHEN NOT MATCHED THEN
INSERT
(PROVINCE,
CITY,
DUTYDAY,
DUTYTIME,
DUTYAREA,
EMPLOYEENAME,
EMPLOYEEID,
EMPLOYEETEL,
BAK,
CNUM,
ID,
SUNNUM2,
SUNNUM,
ROLEID)
VALUES
(V.PROVINCE,
V.CITY,
V.DUTYDAY,
V.DUTYTIME,
V.DUTYAREA,
V.EMPLOYEENAME,
V.EMPLOYEEID,
V.EMPLOYEETEL,
V.BAK,
V.CNUM,
V.ID,
V.SUNNUM2,
V.SUNNUM,
V.ROLEID);
- 请问一下,我要向一个表插入数据,根据ID,重复的更新,没有的插入,不使用COUNT后判断,能做到吗?
- 插入没有重复的数据
- 根据ora_rowscn删除重复插入的数据
- sqlserver中插入不重复的数据!
- 并发插入insert,根据状态判断重复记录的问题
- 向升序排列的单链表中插入一个值,要求插入后仍为升序链表
- 移除重复数据并插入置顶的文章ID
- 插入不重复数据
- 插入不重复数据
- mysql中如何判断指定字段的重复数据则不插入?
- C# 向数据库插入一条记录后,获得新插入记录的自动编号(id)
- 向表中插入数据的时候,自动删除重复的数据
- 向表中插入数据的时候,自动删除重复的数据
- 数据库修改之更新员工表,根据ID删除Mapping表数据,再插入数据
- 向数据库中插入数据的另一个方法 按id号的大小插入
- mysql中根据插入的记录判断是否需要是插入还是更新
- ibatis 的selectKey 实现插入数据后获得id
- mysql插入数据后返回自增ID的方法
- TOPAS详解
- [linux] 改变所有子目录的权限chmod
- linux下卸载mysql rpm安装方式和源码安装方式的两种方法
- 学习三层架构(—)-从零开始
- access denied for user 'root'@'localhost' using password yes
- 请问一下,我要向一个表插入数据,根据ID,重复的更新,没有的插入,不使用COUNT后判断,能做到吗?
- 安好oracle后 部署策略
- Json Struts-Action 配置
- 嫁人就嫁IT男,钱多话少死的早
- WSO2 Business Process Server(WSO2 BPS)使用简易教程
- 更改应用程序的图标
- 云上的Team Foundation Server
- 空间数据与空间分析不确定性原理——学习笔记(1)
- 在ASP.NET中实现多文件上传(三)---jQuery Multiple File Upload Plugin