Firebird SQL - autoinkrementacja
Firebird jest bardzo dobrym rozwiązaniem, jeśli chodzi o opensource-owy motor bazodanowy zgodny z SQL. Ma naprawdę spore możliwości, ale czasem brakuje pewnych rzeczy. Jak zrobić autonumerowanie kolumn?
Trzeba posłużyć się do tego generatorami. Czym one są? Są narzędziami, które trzymają w sobie wartość licznika. Albo po prostu - są licznikami. By stworzyć taki generator, używamy polecenia CREATE GENERATOR nazwa. No ale teraz jak to zastosować w praktyce:
Stwórzmy sobie najpierw do testów tablicę:
CREATE TABLE TEST (
ID INTEGER NOT NULL,
TEKST VARCHAR(20)
);
Nasza tablica TEST ma dwie kolumny: ID i TEKST. Teraz stwórzmy sobie nasz generator, który będzie się nazywał TEST_ID:
CREATE GENERATOR TEST_ID;
Generator został utworzony z domyślną wartością 0. Jeśli mamy życzenie ustawić inną wartość możemy to zrobić poleceniem:
SET GENERATOR TEST_ID TO 5;
Ok, mamy tablicę, generator, jak teraz z tego skorzystać przy dodawaniu wierszy do tablicy? Najprostszym sposobem jest utworzenie takich insertów:
insert into TEST (id, tekst) values (gen_id(test_id,1),'test1');
insert into TEST (id, tekst) values (gen_id(test_id,1),'test2');
insert into TEST (id, tekst) values (gen_id(test_id,2),'test3');
Jak zauważyliśmy, przy dodawaniu wierszy skorzystaliśmy z funkcji gen_id(nazwa_generatora, wartosc), gdzie wartosc to liczba, o którą ma zostać podniesiony licznik. A więc po wykonaniu powyższych insertów otrzymamy taki wynik:
idtekst
6test1
7test2
9test3
Proste? Do wykonywania skryptów można się posłużyć narzędziem IB Expert. Sam z niego korzystam i uważam, że jest naprawdę dobre. Ma spore możliwości.
W razie pytań, problemów lub sugestii proszę pisać do mnie
- Zaloguj się lub utwórz konto, by odpowiadać