在网格视图中删除行时,消息面板指示SQL Developer发出此删除命令。
DELETE FROM "MH"."T" WHERE ROWID = 'AABUG+AAEAAEZtrAAA'
AND ORA_ROWSCN = '1220510600909'
and ( "A" is null or "A" is not null )
似乎指定ROWID应该足以识别行,所以
答案 0 :(得分:6)
ROWID
只是行的物理地址。如果删除了一行并插入了另一行,则新行可能与旧行具有相同的ROWID
。如果行中的数据已被修改,则其ROWID
也可能已更改。 ORA_ROWSCN
条件确保这些都没有发生过。它还允许SQL Developer在您读取数据时提醒您其他会话是否已修改数据,以便您确认仍要删除该行。
我对A is null or A is not null
谓词添加的内容感到茫然。如果它是第一个谓词,我猜这是标准的1 = 1
谓词,人们有时会添加到动态构建的查询中,以简化动态构建SQL语句的过程。但这并不适合它作为查询中的最后一个谓词。 A
是表的主键吗?