Oracle
 sql >> Baza danych >  >> RDS >> Oracle

ROWID (wyrocznia) – czy to ma zastosowanie?

ROWID to fizyczna lokalizacja wiersza. W konsekwencji jest to najszybszy sposób znajdowania wiersza, szybszy nawet niż wyszukiwanie klucza podstawowego. Może więc być przydatny w niektórych typach transakcji, w których wybieramy kilka wierszy, przechowujemy ich ROWIDy, a następnie używamy ROWIDów w where klauzule DML w tych samych wierszach.

Składnia Oracle SELECT ... FOR UPDATE niejawnie używa ROWID, gdy aktualizujemy zablokowany wiersz za pomocą WHERE CURRENT OF. Również tabela EXCEPTIONS (do której odwołuje się podczas stosowania ograniczeń za pomocą klauzuli EXCEPTIONS INTO) zawiera kolumnę ROW_ID. To pozwala nam szybko zidentyfikować wiersze, które łamią nasze ograniczenie.

Ten ostatni przykład wskazuje na inne ogólne zastosowanie:gdy piszemy jakiś ogólny fragment kodu i potrzebujemy mechanizmu do przechowywania UID bez obaw o typ danych, klucze złożone itp.

Z drugiej strony ROWNUM to pseudokolumna, która oznacza wiersz w danym zestawie wyników. Nie ma trwałego znaczenia.

edytuj

ROWID dla danego rekordu może się zmieniać w czasie życia systemu, na przykład poprzez przebudowę tabeli. Również jeśli jeden rekord zostanie usunięty, nowy rekord może otrzymać ten ROWID. W konsekwencji identyfikatory ROWID nie nadają się do stosowania jako identyfikatory UID w dłuższej perspektywie. Ale są wystarczająco dobre do użycia w ramach transakcji.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Podział chmury Oracle — koszty hostingu bazy danych w OCI

  2. Wdrażanie blokowania optymistycznego w Oracle

  3. Tabela oracle lub widok nie istnieje z wnętrza procedury składowanej

  4. Nowa funkcja Oracle 18c:modyfikacja partycjonowania online

  5. Wywołanie procedury składowanej Oracle z C#?