Oracle
 sql >> база данни >  >> RDS >> Oracle

ROWID (оракул) - има ли полза от него?

ROWID е физическото местоположение на реда. Следователно това е най-бързият начин за намиране на ред, по-бърз дори от търсенето на първичен ключ. Така че може да бъде полезно при определени типове транзакции, където избираме някои редове, съхраняваме техните ROWID и след това използваме ROWID в where клаузи за DML срещу същите тези редове.

Синтаксисът на Oracle SELECT ... FOR UPDATE имплицитно използва ROWID, когато актуализираме заключения ред, използвайки WHERE CURRENT OF. Също така таблицата EXCEPTIONS (посочена при прилагане на ограничения с клаузата EXCEPTIONS INTO) има колона ROW_ID. Това ни позволява бързо да идентифицираме редовете, които нарушават нашето ограничение.

Последният пример насочва към друга обща употреба:когато пишем някакъв общ код и се нуждаем от механизъм за съхранение на UID без притеснения относно типа данни, съставните ключове и т.н.

ROWNUM от друга страна е псевдоколона, която маркира ред в даден набор от резултати. Няма постоянно значение.

редактиране

ROWID за даден запис може да се промени през целия живот на системата, например чрез повторно изграждане на таблица. Също така, ако един запис бъде изтрит, може да бъде даден нов запис, този ROWID. Следователно ROWID не са подходящи за използване като UID в дългосрочен план. Но те са достатъчно добри за използване в рамките на транзакция.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да издигна изключение в PL/SQL?

  2. Курсор за цикъл с динамичен SQL-изявление

  3. SQL:Вземете записи, създадени във времеви диапазон за конкретни дати

  4. Oracle:Има ли начин да получите скорошни грешки в синтаксиса на SQL?

  5. Oracle SQL - Как да извлечете най-високите 5 стойности на колона