【笔记】Oracle union all&for update锁

【笔记】Oracle union all&for update

union all

在Oracle中有三种类型的集合操作

  • UNION:求并,重复记录只显示一次
  • UNION ALL:求并集,显示所有记录信息
  • INTERSECT:求交集
  • MINUS:返回两个查询结果的差值

UNION 的用法中前后两个查询语句所含字段是否一定要相同吗

不需要

UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同

但是如果是要用union去去除重复值的话,用UNION连接的前后两个SQL语句查询出来的结果在字段顺序,字段名称,字段类型都要一致才可以

for update mysql

使用了for update以后就会加锁,很多时候可能会导致其余的对该表的update语句进入堵塞

那加的锁是锁表还是行锁呢?

如果查询条件用了索引/主键,那么select ..... for update就会进行行锁。

如果是普通字段(没有索引/主键),那么select ..... for update就会进行锁表。

for update Oracle

在oracle中,“for update”是一种行级锁,用于给某个行施加行级锁,加锁的用户可以查询和更新数据行,但其他用户不能查询和更新被加锁的行

posted @ 2022-09-25 21:36  DbWong_0918  阅读(371)  评论(0编辑  收藏  举报