|
1
9
不,单个update语句是原子的,它们的各个部分没有顺序。
做 确切地 同样的事情,因为这两个任务被认为是同时发生的。
换句话说,
附录: 怎么 DBMS实现这种行为取决于编写DBMS的人员的聪明程度。
例如DBMS
可以
尝试锁定其中的所有行
像这样的陈述
然后它将解锁所有行。 这只是一个选择。一个非常愚蠢的DBMS可能只会锁定整个数据库文件,尽管这不利于非常智能的并发。
|
|
2
3
SQL不按字段的顺序计算值。就SQL而言,这些语句是相同的。 更新发生在一个步骤中(原子的),而不是几个有序的步骤。
如果它有助于您理解,您可以将其视为update触发器中发生的事情,update触发器可以访问
|
|
|
3
2
@Ismail答案的变体:从逻辑上讲,更新是一起提交的删除和插入,这就是为什么在每个逻辑表中都有一行
一个有用的助手是
|
|
|
4
0
现在我明白了,有两个逻辑表,即
所以值被设置为
|
|
John D · 需要为NULL或NOT NULL的WHERE子句 1 年前 |
|
Marc Guillot · 记录值时忽略冲突 1 年前 |
|
|
Fachry Dzaky · 正确使用ROW_NUMBER 1 年前 |
|
|
TriumphTruth · 从满足特定条件的数据集中选择1行 1 年前 |