sql >> Databáze >  >> RDS >> Oracle

ROWID (oracle) - nějaké využití?

ROWID je fyzické umístění řádku. V důsledku toho je to nejrychlejší způsob vyhledání řádku, dokonce rychlejší než vyhledávání primárního klíče. Takže to může být užitečné v určitých typech transakcí, kde vybereme nějaké řádky, uložíme jejich ROWID a později použijeme ROWID v where klauzule pro DML proti stejným řádkům.

Syntaxe Oracle SELECT ... FOR UPDATE implicitně používá ROWID, když aktualizujeme zamčený řádek pomocí WHERE CURRENT OF. Také tabulka EXCEPTIONS (odkazovaná při použití omezení s klauzulí EXCEPTIONS INTO) má sloupec ROW_ID. To nám umožňuje rychle identifikovat řádky, které porušují naše omezení.

Tento druhý příklad ukazuje na další obecné použití:když píšeme nějaký obecný kus kódu a potřebujeme mechanismus pro ukládání UID bez obav ohledně datového typu, složených klíčů atd.

ROWNUM je na druhé straně pseudosloupec, který označuje řádek v dané sadě výsledků. Nemá trvalý význam.

upravit

ROWID pro daný záznam se může v průběhu životnosti systému měnit, například prostřednictvím přestavby tabulky. Také pokud je jeden záznam odstraněn, může být přidělen nový záznam s tímto ROWID. V důsledku toho nejsou ROWID dlouhodobě vhodné pro použití jako UID. Ale jsou dost dobré pro použití v rámci transakce.



  1. Převeďte jeden řádek na více řádků s méně sloupci

  2. Jak mohu získat počet záznamů ovlivněných uloženou procedurou?

  3. Připojení Microsoft Excel k Xero

  4. Spojte frázi končící na předponu s fulltextovým vyhledáváním