zoukankan      html  css  js  c++  java
  • Mysql-for update手工锁定sql

    for update 前言

    for update都会对查询到的当前结果集进行加锁

    当select语句中使用了for update,如果当前select发现自己的结果集中有一条或者多条数据正在被修改(如有其他的语句提前for update了等),那么再执行此语句就会一直等待。

    for update 定义

    for update是一种行级锁,又叫排它锁,一旦用户对某个行施加了行级加锁,则该用户可以查询也可以更新被加锁的数据行,其它用户只能查询但不能更新被加锁的数据行.如果其它用户想更新该表中的数据行,则也必须对该表施加行级锁.即使多个用户对一个表均使用了共享更新,但也不允许两个事务同时对一个表进行更新,真正对表进行更新时,是以独占方式锁表,一直到提交或复原该事务为止。行锁永远是独占方式锁。

    只有当出现如下之一的条件,才会释放共享更新锁:
    1、执行提交(COMMIT)语句
    2、退出数据库(LOG OFF)
    3、程序停止运行

    for update 使用

    SELECT * FROM user WHERE id=3 FOR UPDATE;
    
    SELECT * FROM user WHERE id=3 and name='Tom' FOR UPDATE;
  • 相关阅读:
    c# 正则表达式 首字母转大写
    c# WebBrowser获取cookie
    c# 求最小公倍数
    Response.Redirect与Server.Transfer区别-转
    asp 读文件 比较ip
    asp数组的使用
    如何解决#1045
    mysql limit分页查询效率
    Docker 容器管理:rancher
    Docker监控:google/cadvisor
  • 原文地址:https://www.cnblogs.com/shuzf/p/15357617.html
Copyright © 2011-2022 走看看