oracle实现upsert逻辑功能

  1. student表结构

字段名称 类型 注释
ID NUMBER 主键
NAME VARCHAR 姓名
AGE NUMBER 年龄
VALID_START_TIME DATE 有效开始时间
VALID_END_TIME DATE 有效结束时间

  1. oracle执行upsert的sql语句

BEGIN
UPDATE STUDENT SET NAME = 'ZHANGSAN'
WHERE ID=200002;
IF
SQL%NOTFOUND THEN
INSERT INTO STUDENT (ID,NAME,AGE) VALUES (200002,'ZHANGSAN',7);
END IF;
END;
  1. mybatis批量执行upsert的sql定义语句


        
            UPDATE STUDENT
            SET VALID_START_TIME=to_date(#{map.startTime},'yyyy-MM-dd hh24:mi:ss'),VALID_END_TIME=to_date(#{map.expireTime},'yyyy-MM-dd hh24:mi:ss')
            WHERE ID=#{map.id};
            IF
            SQL%NOTFOUND THEN
            INSERT INTO STUDENT (ID,NAME,AGE
            
                ,VALID_START_TIME
            
            
                ,VALID_END_TIME
            
            )
            VALUES (#{map.id},#{map.name},#{map.age}
            
                ,to_date(#{map.startTime},'yyyy-MM-dd hh24:mi:ss')
            
            
                ,to_date(#{map.expireTime},'yyyy-MM-dd hh24:mi:ss')
            
            );
            END IF;
        
    

你可能感兴趣的:(oracle,数据库,sql,upsert)