serial
to pseudo typ danych, a nie rzeczywisty typ danych. Jest to integer
poniżej z kilkoma dodatkowymi poleceniami DDL wykonywanymi automatycznie:
- Utwórz sekwencję (domyślnie z pasującą nazwą).
- Ustaw kolumnę
NOT NULL
i domyślnie rysować z tej sekwencji. - Uczyń kolumnę „właścicielem” sekwencji.
Szczegóły:
- Bezpiecznie i czysto zmieniaj nazwy tabel używających kolumn szeregowych kluczy podstawowych w Postgresie?
bigserial
jest taki sam, zbudowany wokół bigint
kolumna. Chcesz bigint
, ale już to osiągnąłeś. Aby przekształcić istniejący serial
kolumna do bigserial
(lub smallserial
), wystarczy ALTER
typ danych kolumny. Sekwencje są generalnie oparte na bigint
, więc ta sama sekwencja może być użyta dla każdej integer
typ.
Aby „zmienić” bigint
w bigserial
lub integer
w serial
, resztę musisz zrobić ręcznie:
- Tworzenie sekwencji PostgreSQL w polu (które nie jest identyfikatorem rekordu)
Rzeczywisty typ danych to nadal integer
/ bigint
. Niektórzy klienci, tacy jak pgAdmin, wyświetlają typ danych serial
w inżynierii wstecznej CREATE TABLE
skrypt, jeśli wszystkie kryteria dla serial
są spełnione.