在delete语句中使用rowid

Rev*_*ous 5 oracle sql-delete

使用rowid删除是否有严重的禁忌症?

DELETE FROM NETATEMP.SFAC_TESTATA_CASISTICHE
      WHERE ROWID IN (  SELECT MIN (ROWID)
                          FROM NETATEMP.SFAC_TESTATA_CASISTICHE
                      GROUP BY ID_CASO,
                               DESCRIZIONE_TECNICA,
                               DESCRIZIONE_ANALISI,
                               PDF,
                               SCARTI,
                               DATA_INIZIO_ANALISI,
                               DATA_FINE_ANALISI,
                               DATA_INSTRADAMENTO,
                               DATA_RISOLUZIONE,
                               STRINGA_RICERCA,
                               SETTIMANA,
                               DATA_INIZIO_SETT,
                               DATA_FINE_SETT,
                               FATTURAZIONE,
                               IN_ELABORAZIONE
                        HAVING COUNT (1) > 1);
Run Code Online (Sandbox Code Playgroud)

a_h*_*ame 9

如果你假设min(rowid)返回"最早"的行,那么是的,你有一个问题(因为它不会)

如果你min(rowid)只使用其中一个副本(并且你不关心哪个),那么不,该语句没有任何问题.