zoukankan      html  css  js  c++  java
  • 2015年12月16日 Oracle语句实现有则更新无则插入

     在使用Oracle数据库之前,我是用的是Mysql数据库,知道Mysql数据库实现有则更新,无则更新,是有一条语句的,

     但是Oracle实现此功能却一时让我顿感无措,但是我坚信oracle数据库一定会提供此类语句。

     于是。。。

    1)Oracle实现有则更新,无则插入

        使用MERGE INTO语句

        如下:已知传过来的参数三个 userid 、name 、sex.要求如果用户表(T_USER)中存在相同的userid则更新name和sex字段,如果用户表(T_USER)中不存在userid,则插入一条记录

        MERGE INTO T_USER T1 

        USING(SELECT userid AS id,name AS username,sex AS usersex FROM dual) T2

        ON(T1.userid=T2.id)

        WHEN MATCHED THEN

        update set t1.name=t2.username,t1.sex=t2.usersex

        WHEN NOT MATCHED THEN

        insert(userid,name,sex) VALUES(t2.id,t2.username,t2.usersex);

    2)Mysql实现有则更新,无则插入

        MYSQL需要实现以上功能,需要怎么做呢?

        使用ON DUPLICATE KEY UPDATE语句

        已知传过来的参数三个 id 、username 、usersex 它们的值分别为: 1   张三  男.

        INSERT INTO T_USER(userid,name,sex) VALUES (id,username,usersex) ON DUPLICATE KEY UPDATE name=username,sex=usersex;

        注意:如果在Mysql中使用这种形式,则要求在数据表中userid字段必须是主键或建立了唯一的索引

       如须引用,请表明出处: http://www.cnblogs.com/anzhao/p/5050555.html 

  • 相关阅读:
    MySQL补充
    不同操作系统下虚拟环境的搭建
    Python导学基础(二)变量与基础数据类型
    Python导学基础(一)介绍
    KM 算法
    题解-CF1065E Side Transmutations
    题解-CF1140E Palindrome-less Arrays
    题解-CF677D Vanya and Treasure
    splay文艺平衡树
    splay区间操作(bzoj1500)
  • 原文地址:https://www.cnblogs.com/anzhao/p/5050555.html
Copyright © 2011-2022 走看看