博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DB2 replace into实现
阅读量:6857 次
发布时间:2019-06-26

本文共 1457 字,大约阅读时间需要 4 分钟。

最近进入到另一个项目, 数据库用的是DB2, 要实现MySQL中类似replace into的功能, 网上搜了下, 实现了一个类似功能的基础方法(PHP实现)

public function replace($table, $arr, $pks){        $values = '';        $keys = '';        $mergeValues = '';        $upStatement = '';        $first = true;        foreach($arr as $key => $val){            if (!$first){                $values .= ',';                $keys .= ',';                $mergeValues .= ',';                $upStatement .= ',';            }            else{                $first = false;            }            $values .= "'{
$val}'"; $keys .= $key; $mergeValues .= "merge.{
$key}"; $upStatement .= "tab.{
$key} = merge.{
$key}"; } $first = true; $pkstr = ''; foreach($pks as $pk){ if (!$first){ $pkstr .= ' AND '; } else{ $first = false; } $pkstr .= "tab.{
$pk} = merge.{
$pk}"; } $sql = "MERGE INTO {
$table} AS tab USING (VALUES ({
$values}) ) AS merge ({
$keys}) ON {
$pkstr} WHEN MATCHED THEN UPDATE SET {
$upStatement} WHEN NOT MATCHED THEN INSERT ({
$keys}) VALUES ({
$mergeValues})"; $this->db->query($sql); }

 

参考链接:

http://www.withdata.com/blog/db2/replace-update-or-insert-a-row-into-db2-table-merge-into.html

转载于:https://www.cnblogs.com/Moon-Face/p/4380946.html

你可能感兴趣的文章
咏南中间件更新日志
查看>>
在rem布局下使用背景图片以及sprite
查看>>
JAVA设计模式之【抽象工厂模式】
查看>>
数字电视的电子节目指南(EPG)及其系统
查看>>
11 复用与多址
查看>>
附录A 编译安装Hadoop
查看>>
android studio building project info 错误
查看>>
【Scala】Scala之Control Structures
查看>>
三星手机拍照,从图库选择照片旋转问题完美解决
查看>>
算法笔记_173:历届试题 斐波那契(Java)
查看>>
菜鸟版JAVA设计模式—外观模式
查看>>
EasyUI----动态拼接EasyUI控件
查看>>
PHP session 跨子域问题总结 ini_set('session.cookie_domain', ".domain.com")
查看>>
Office WPS如何在页眉页脚添加一条横线
查看>>
站在 Android 开发的角度,聊聊 Airbnb 的 Lottie!!!
查看>>
数组去重Demo引出的思考
查看>>
javascript怎么禁用浏览器后退按钮
查看>>
AtomicLong可以被原子地读取和写入的底层long值的操作
查看>>
Android studio 将 Module 打包成 Jar 包
查看>>
Java中抽象类和抽象方法的区别
查看>>