一条更新语句的执行流程又是怎样的呢?
之前你可能经常听DBA同事说,MySQL可以恢复到半个月内任意一秒的状态,惊叹的同时,你是不是心中也会不免会好奇,这是怎样做到的呢?
我们还是从一个表的一条更新语句说起,下面是这个表的创建语句,这个表有一个主键ID和一个整型字段c:
如果要将ID=2这一行的值加1,SQL语句就会这么写:
前面我有跟你介绍过SQL语句基本的执行链路,这里我再把那张图拿过来,你也可以先简单看看这个图回顾下。首先,可以确定的说,查询语句的那一套流程,更新语句也是同样会走一遍。
2025年07月10日
一条更新语句的执行流程又是怎样的呢?
之前你可能经常听DBA同事说,MySQL可以恢复到半个月内任意一秒的状态,惊叹的同时,你是不是心中也会不免会好奇,这是怎样做到的呢?
我们还是从一个表的一条更新语句说起,下面是这个表的创建语句,这个表有一个主键ID和一个整型字段c:
如果要将ID=2这一行的值加1,SQL语句就会这么写:
前面我有跟你介绍过SQL语句基本的执行链路,这里我再把那张图拿过来,你也可以先简单看看这个图回顾下。首先,可以确定的说,查询语句的那一套流程,更新语句也是同样会走一遍。
2025年07月10日
FOR UPDATE 是 SQL 查询中一种用于锁定选定行的子句,通常与事务一起使用。在支持行锁定的数据库管理系统(如 MySQL, PostgreSQL, Oracle 等)中,FOR UPDATE 会请求行级锁,以确保在事务完成之前,其他事务不能修改或删除这些被锁定的行。这有助于防止并发事务之间的冲突,并确保数据的一致性。
2025年07月10日
在SQL Server数据库开发中,经常会遇到需要根据一个表的数据来更新另一个表的情况。通过SELECT语句从一个或多个表中提取数据,然后使用UPDATE语句将这些数据更新到目标表中,是一种常见的操作需求。