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

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

他们三个共同点: 当使用select for update 或者select for update wait或者........session会话) update test8 set price=6 where ID=1 ?...会话二的update语句执行成功 2、select for update nowait for  update和for update nowait都会对查询到的当前结果集进行加锁,所不同的是,当有另外的会话在修改当前结果集中的数据...测试代码如下: 新建一个SQL窗口1(相当于新建一个会话) update test8 set price=3 where ID=1 更新test8表的一条数据,但是不进行commit操作 然后新建SQL...测试代码如下: 首先新建SQL窗口1(相当于新建一个会话)执行update 语句,但是不进行commit操作,那么当前数据行将被lock update test8 set price=3 where ID

2.4K100

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

9810
领券