Oracle SQL - Autonumeracja przy dodwawaniu wierszy

Jeżeli chcielibyśmy, żeby przy wstawianiu elementów do tablicy nie trzeba było wstawiać indeksów ręcznie należy stworzyć sobie sekwencję i wyzwalacz.

Tworzenie sekwencji pozwala na pobieranie kolejnych unikalnych wartości przydatnych jako indeksy.

CREATE SEQUENCE tablica_sekwencja
MINVALUE 1 MAXVALUE 9999999999
INCREMENT BY 1
START WITH 262
CACHE 10
NOORDER NOCYCLE;

Teraz można dodawać (do tabeli - id, nazwa) np w ten sposób

insert into tabela values (tablica_sekwencja.nextval, 'jakas_nazwa_wlasna');

Triggery pomagają jeszcze mocniej zautomatyzować tę pracę

create or replace TRIGGER
tabela_nazwa_triggera
before INSERT ON tabela
FOR EACH ROW
BEGIN
if :new.id is null then
 select tablica_sekwencja.nextval into :new.id from dual;
end if;
END;
/

Po takich zabiegach można stosować nawet

insert into tabela (nazwa) value ('jakas_nazwa_wlasna');

wygląda o wiele przejrzyściej

2010.03.28 11:48:35.