首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    ON DUPLICATE KEY UPDATE

    问题引出 案例:某个餐桌(id)花了多少钱(num) 如果4号餐桌点了一份西红柿4元,我们可以插入;如果3号餐桌点了一份西红柿4元,我们可以修改 你选择insert或者update的原因是你知道他原来有没有数据...一般我们的逻辑为 先查询,如果没有,插入;反之修改 if not exists (select ) insert else update 最简单直观的问题;发送两条SQL语句吧...,性能问题 解决方法 有则改之无则加勉,数据库中同样也有相似的问题,有就修改,没有就插入 ON DUPLICATE KEY UPDATE 就是解决,如果有数据就修改,如果没有数据就插入的问题 第一次执行...(数据库中没有id 为4的数据) INSERT INTO hello (id,num) VALUES (4,4) ON DUPLICATE KEY UPDATE id = 4 ,num = 4+num;...Query OK, 1 row affected 第二次执行(数据库中有id为4的数据) INSERT INTO hello (id,num) VALUES (4,4) ON DUPLICATE KEY UPDATE

    16710

    select for update和select for update wait和select for update nowait的区别

    他们三个共同点: 当使用select for update 或者select for update wait或者........,那么oralce会给符合where条件的数据行加上一个行级锁 1、select for update 但是如果你的select 语句加了for update,那么就不是上面这回事了,当oracle发现...会话二的update语句执行成功 2、select for update nowait for  update和for update nowait都会对查询到的当前结果集进行加锁,所不同的是,当有另外的会话在修改当前结果集中的数据...窗口2(相当于新建一个会话)select for update nowait操作 select * from test8 for update nowait ?...3、select for update wait 它也会对查询到的结果集进行加锁,select for update wait与select for update nowait不同的地方是,当有另外的会话对它的查询结果集中的某一行数据进行了加锁

    2.4K100

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券