update 与 merge
Posted huanglp
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了update 与 merge相关的知识,希望对你有一定的参考价值。
update 是平时使用比较多的更新语句 适用于数据量较小的情况下
merge 也是更新语句 但是更新速度很快 所以当数据量大的时候 建议使用这个方法
列:
UPDATE 表名1 gygx
SET gygx.gyoid =
(SELECT gy.pid FROM 表名2 gy
WHERE gygx.oid=gy.oid AND gy.reltype =21
)
SET gygx.gyoid =
(SELECT gy.pid FROM 表名2 gy
WHERE gygx.oid=gy.oid AND gy.reltype =21
)
将上面的update语句改为下面的merge 语句 效果一样 但速度快很多倍
merge into 表名1 gygx
using 表名2 gy on(gygx.oid=gy.oid AND gy.reltype =21)
when matched then
update set gygx.gyoid = gy.pid
using 表名2 gy on(gygx.oid=gy.oid AND gy.reltype =21)
when matched then
update set gygx.gyoid = gy.pid
以上是关于update 与 merge的主要内容,如果未能解决你的问题,请参考以下文章
SQL UPDATE TOP () 或 UPDATE 与 SELECT TOP
Postgres INSERT ON CONFLICT DO UPDATE 与 INSERT 或 UPDATE
For update 与 For update nowait 的区别