Sekwencje w PostgreSQL (lub pgsql) to specjalny rodzaj obiektu bazy danych, który generuje unikalne, kolejne liczby. Są one szczególnie przydatne jako wartości kluczy głównych, dzięki czemu możemy unikać konfliktów wynikających z prób równoczesnego dodawania rekordów przez różne transakcje. Sekwencje są również używane, gdy chcemy autoinkrementować wartości w kolumnach, aby utrzymać unikalność.
Operacje, które można wykonywać na sekwencjach w PostgreSQL, obejmują:
Tworzenie sekwencji: Możemy utworzyć sekwencję, używając polecenia CREATE SEQUENCE. Pozwala to na ustalenie parametrów, takich jak inkrementacja, minimalna i maksymalna wartość, czy cykliczność sekwencji.
CREATE SEQUENCE nazwa_sekwencji
INCREMENT BY wartość
MINVALUE wartość_min
MAXVALUE wartość_max
START WITH wartość_startowa
CYCLE;
- Używanie sekwencji w tabeli: Aby użyć sekwencji do generowania unikalnych wartości w tabeli, możemy przypisać wartość domyślną kolumny jako NEXTVAL z sekwencji.
CREATE TABLE przyklad (
id SERIAL PRIMARY KEY,
nazwa VARCHAR(255) NOT NULL
);
- Pobieranie wartości z sekwencji: Aby pobrać bieżącą wartość sekwencji, można użyć funkcji CURRVAL. Aby pobrać następną wartość, można użyć funkcji NEXTVAL.
SELECT currval('nazwa_sekwencji');
SELECT nextval('nazwa_sekwencji');
- Modyfikacja sekwencji: Możemy zmienić wartości parametrów sekwencji za pomocą polecenia ALTER SEQUENCE.
ALTER SEQUENCE nazwa_sekwencji
INCREMENT BY wartość
MINVALUE wartość_min
MAXVALUE wartość_max
RESTART WITH wartość_startowa
CYCLE;
- Usuwanie sekwencji: Aby usunąć sekwencję, używamy polecenia DROP SEQUENCE.
DROP SEQUENCE nazwa_sekwencji;
Te operacje pozwalają na efektywne zarządzanie sekwencjami w PostgreSQL, dostarczając elastyczności i wydajności w procesie generowania unikalnych wartości w bazie danych.