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.