您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

merge into用法

2024/3/16 20:24:18发布30次查看
简单的说就是,判断表中有没有符合on()条件中的数据,有了就更新数据,没有就插入数据。
有一个表t,有两个字段a、b,我们想在表t中做insert/update,如果条件满足,则更新t中b的值,否则在t中插入一条记录。在microsoft的sql语法中,很简单的一句判断就可以了,sql server中的语法如下:(推荐学习:mysql视频教程)
if exists(select 1 from t where t.a='1001' )update t set t.b=2 where t.a='1001'elseinsert into t(a,b) values('1001',2);
但是很明显这个语法对于sql只能更改一条语句,并且oracle不能使用.所以就有了merge into(oracle 9i引入的功能)语法 
merge into 目标表 a using 源表 b on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……)   when matched then update set a.更新字段=b.字段 when  not matched then insert into a(字段1,字段2……)values(值1,值2……)
在一个同时存在insert和update语法的merge语句中,总共insert/update的记录数,就是using语句中源表的记录数。
 源表b可能是一张表结构不同于a的表,有可能是一张构建相同表结构的临时表,也有可能是我们自己组起来的数据.
更多mysql相关技术文章,请访问mysql数据库图文教程栏目进行学习!
以上就是merge into用法的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product