使用身份自动序列时出现问题。 一开始一切正常,但之后开始显示更大的数字
ID NAZIV KATEGORIJA OPIS OBAVLJENO
-- --------------- ------------------- ----------------------------- ---------
21 osmi zadatak pl/sql blok kreiranje anonimnog pl/sql blo n
ka
1 prvi zadatak kreiranje tablespac kreiranje tablespace-a sa odre y
-a djenim karakteristikama
2 drugi zadatak kreiranje usera kreiranje usera sa odredjenim y
karakteristikama
3 treci zadatak kreiranje tabele kreiranje tabele sa testnim po y
dacima
4 cetvrti zadatak kreiranje b-tree in kreianje b-tree indexa nad kol y
dexa onom id
5 peti zadatak kreiranje sequence kreiranje sequence seq_zadaci_ y
id
6 sesti zadatak ubacivanje podataka ubacivanje podataka u tabelu i y
u tabelu izvrsiti nekoliko izmena
7 sedmi zadatak kreiranje paketa kreiranje paketa sa uskladiste n
nim procedurama
到目前为止,一切正常,所以我调用了表中的所有数据:
SQL> insert into zadaci (naziv, kategorija, opis, obavljeno)
2 values ('osmi zadatak', 'pl/sql blok', 'kreiranje anonimnog pl/sql bloka', 'n');
答案 0 :(得分:1)
“身份”列在后台使用序列。
如果生成并在最终回滚的事务中使用了单个序列号,则可以跳过。
警告:
如果您的应用程序需要一组无间隙的数字,则不能使用Oracle序列。您必须使用自己开发的代码序列化数据库中的活动。
可以预见到间隙,这可能是由于插入回滚,手动调用序列(不太可能带有标识列)或数据库崩溃导致丢失的缓存值所致。
此外,如果您有RAC集群,则每个实例将具有自己的值缓存,并且在实例上运行的语句将从其各自的缓存中分配值,因此,如果与“ a”进行比较,则标识甚至可能不是严格顺序的。时间戳值。