今天找了一个sql来检查一个表的修改,如下图:
SELECT MODEL_ID, STATUS_ID, COUNT(*) as QUANTITY, ORA_ROWSCN as CHANGE_NUM
FROM DEVICE
GROUP BY MODEL_ID, STATUS_ID
当我在 DEVICE 表中添加一条记录时,结果的 QUANTITY 增加了,但 CHANGE_NUM 没有改变。
然后我惊讶地发现 ORA_ROWSCN 不是 GROUP BY 子句的一部分,是因为 ORA_ROWSCN 是伪列吗?
当我更改ORA_ROWSCN
为MAX(ORA_ROWSCN)
时, CHANGE_NUM 按预期增加。
那么我们在第一个 sql 中得到的 ORA_ROWSCN 是什么?组的第一个更改数量?这种用法的含义是什么?
PS:我使用的是 Oracle 数据库 11g