`
男人50
  • 浏览: 238498 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

mysql中update语句的锁

 
阅读更多
UPDATE rent_contacts SET contacts_mobile='11111' WHERE  rent_unit_code in (SELECT rent_unit_code FROM  rent_unit  );

第一种情况:  条件无索引

sql一执行:

BEGIN;

UPDATE contacts SET mobile='11111' WHERE  code in ('3424342' );

sql二执行 UPDATE contacts SET mobile='11111' WHERE  code in ('1111' );

sql二执行受阻,sql一commit之后,sql二可执行成功

结论:条件无索引,锁表



第二种情况: 条件有索引,in语句是确定的值

sql一执行:

BEGIN;

UPDATE contacts SET mobile='11111' WHERE  code in ('3424342' );

sql二执行 UPDATE contacts SET mobile='11111' WHERE  code in ('1111' );

sql二正常执行,sql二不依赖sql一的commit

结论:条件有索引,锁行





第三种情况: 条件有索引,in语句是复杂查询

sql一执行:

BEGIN;

UPDATE contacts SET mobile='11111' WHERE  code in ( select code from user where id=1);

sql二执行 UPDATE contacts SET mobile='11111' WHERE  code in ('1111' );

sql二执行受阻,sql一commit,sql二正常执行

结论:条件有索引,in语句是不确定的值,锁表
分享到:
评论

相关推荐

    MySQL中update操作会自动加锁吗

    MySQL中update操作会自动加锁吗,看了就知道答案!!!

    MySQL数据库中group by语句与update语句的用法研究.pdf

    MySQL 数据库中 group by 语句与 update 语句的用法研究 本论文对 MySQL 数据库中的 group by 语句和 update 语句...在使用 update 语句时,在同一条查询语句中不能直接从某表中查出数据再更新或删除本表中的数据。

    根据update语句自动生成select语句

    总结,从UPDATE到SELECT的转换主要是将WHERE子句应用到SELECT语句中。在JavaScript中,我们使用相应的库来执行SQL;Oracle、MySQL和Informix都支持标准SQL,可以直接执行转换后的SELECT语句。了解这些转换技巧,可以...

    MySQL锁类型以及子查询锁表问题、解锁1

    在实际应用中,可能会遇到死锁问题,特别是在涉及子查询的更新语句中。如描述中所示,如果一个事务在更新时对子查询中的表进行锁定,可能导致其他事务尝试获取已被锁定的资源,从而引发死锁。MySQL在检测到死锁时会...

    mysql update正则替换sql语句

    本知识点将围绕MySQL数据库中的UPDATE语句与正则表达式结合使用的方法进行深入讲解。 MySQL的UPDATE语句用于修改表中的数据,当我们需要根据复杂的条件来更新记录时,可以利用正则表达式(REGEXP)来指定匹配模式。...

    insert,update导出sql语句

    在数据库管理中,INSERT和UPDATE语句是两个非常基础且重要的操作。它们分别用于向数据库中插入新的数据和更新已存在的数据。这篇内容将详细解释这两个SQL语句的工作原理、用法以及如何导出这些语句,以供日后使用或...

    update语句

    标题中的“update语句”指的是在数据库管理中用于修改现有数据的SQL命令。在数据库操作中,`UPDATE`语句是不可或缺的一部分,它允许我们更改表中的特定行或所有行的数据。下面将详细介绍`UPDATE`语句的工作原理、...

    mysql update语句的用法详解.doc

    需要注意的是,UPDATE语句中不能使用ORDER BY或LIMIT子句与multiple-table UPDATE同时使用。在一个被改变的multiple-table UPDATE中, 有些列被引用。您只需要这些列的UPDATE权限。有些列被读取了,但是没被修改。您...

    Mysql Update批量更新的几种方式

    刚开始你可能会想到使用循环执行多条UPDATE语句的方式,就像以下的python程序示例: for x in xrange(10): sql = ''' UPDATE mytable SET myfield='value' WHERE other_field='other_value'; ''' 这种方法并没有...

    在Delphi中更新数据库UPDATE语句使用示例..rar

    在Delphi中,可以通过在SQL语句中使用参数占位符(如`?`),然后在TADOCommand的Parameters集合中添加对应的TParameter对象。例如: ```delphi Cmd.CommandText := 'UPDATE Employees SET Salary = :NewSalary ...

    mysql 原生语句中save 的写法汇总.docx

    MySQL 原生语句中 save 的写法汇总 在 MySQL 中,save 操作是经常遇到的场景,特别是在 UPDATE 和 INSERT 操作中。使用 Hibernate 可以使用 saveOrUpdate 方法,但是使用原生 SQL 语句时,该如何实现 save 操作呢?...

    mysql常用性能查询语句

    该语句可以查看 MySQL 服务器自上次启动以来的 update 语句执行次数。 5. 查看 delete 语句的执行数 使用语句:show status like 'com_delete'; 该语句可以查看 MySQL 服务器自上次启动以来的 delete 语句执行...

    Mysql常用SQL语句

    MySQL常用SQL语句 MySQL是一种关系型数据库管理系统,使用SQL(Structured Query Language)语言来管理和操作数据库。...这些SQL语句都是MySQL中常用的语句,掌握这些语句可以帮助你更好地管理和操作数据库。

    php+MySQL判断update语句是否执行成功的方法

    在PHP和MySQL的结合使用中,执行UPDATE语句是常见的数据操作,比如更新数据库表中的某一列或几列的数据。然而,确保UPDATE语句成功执行并影响了正确的行数至关重要,因为这能防止数据错误和意外修改。下面将详细介绍...

    mysql update语句的执行过程详解

    MySQL的UPDATE语句是用于修改现有数据库表中数据的关键命令。在本文中,我们将深入探讨UPDATE语句的执行过程,特别是在MySQL环境下。 首先,我们创建一个名为`test`的表,包含一个自增主键`id`和一个整数列`c`。接...

    MySQL SQL语句练习题及答案

    在 MySQL 中,更新数据使用 UPDATE 语句。例如,修改 0001 学生的系科为 JSJ: ```sql UPDATE student SET sdept = 'JSJ' WHERE sno = '0001'; ``` 五、查询数据 在 MySQL 中,查询数据使用 SELECT 语句。例如,...

    MySQL增加更新语句生成器

    结合这些功能,MySQL增加更新语句生成器能够智能地读取配置文件,识别用户指定的标记,然后根据这些标记进行文本处理,生成适合的SQL INSERT或UPDATE语句。这样的工具大大提高了数据库管理的效率,减少了手动编写和...

    mysql语句转postgres的工具

    在这个过程中,`MysqlToPostgresUtil`工具扮演着重要的角色,它能帮助我们将MySQL的DDL(Data Definition Language)语句转换为PostgreSQL兼容的格式,从而简化迁移过程。 MySQL和PostgreSQL虽然都是关系型数据库...

    Delphi通过update语句修改数据库内容..rar

    4. 如果SQL语句中有参数,如上述示例中的`:NewValue`,需要设置对应的TADParameter。在TADOCommand的Parameters集合中添加一个新的参数,设置其Name和Value属性。 5. 调用TADOCommand的Execute方法来执行UPDATE语句...

    MySQL 替换某字段内部分内容的UPDATE语句

    此外,避免在`UPDATE`语句中使用可能导致全表扫描的操作,例如`SELECT * FROM`或没有索引的`WHERE`条件,这可能导致性能问题。如果`title`字段有索引,`REPLACE()`可能会导致索引失效,需要后续重建索引以保持查询...

Global site tag (gtag.js) - Google Analytics