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

Как оракул rowid се генерира вътрешно?

„Минималния“ ред вероятно няма винаги предоставяйте първия вмъкнат ред от таблицата. За да цитирам от документацията :

"и така нататък" показва, че има много причини, които биха довели до промяна на rowid. Това може лесно да се демонстрира с малък пример:

create table tmp_test ( a number );
insert into tmp_test values (1);
select rowid, a from tmp_test;

ROWID                       A
------------------ ----------
AABo3AAFvAAAda6AAA          1
alter table tmp_test move;
select rowid, a from tmp_test;

ROWID                       A
------------------ ----------
AABo3BAFvAAAdbjAAA          1

Ще забележите, че след alter table операция единственият ред се промени.

Ако rowid може да се променя и тъй като Oracle не гарантира изрично, че "най-ниският" rowid винаги ще бъде първият вмъкнат ред, трябва да имате друг начин за проследяване на това, ако е необходимо. Би било нормално клеймо за време или нарастваща последователност.

Трябва да е доста необичайно изискване да се намери първият вмъкнат ред без препратка към никакви данни. Ако това е нещо, което обмисляте да използвате, бих погледнал отново защо трябва да направите това.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да избегнем грешки при мутиране на таблицата

  2. как да дублирам моите sql резултати?

  3. Как да изпълним необработена заявка с връщане в sqlalchemy

  4. Как да разберете, че името на града не започва и не завършва с гласна

  5. Как да промените nls_date_format по подразбиране за oracle jdbc клиент