Dari dokumen :
Tipe data smallserial
, serial
dan bigserial
bukan tipe sebenarnya, tetapi hanya kenyamanan notasi untuk membuat kolom pengenal unik (mirip dengan properti AUTO_INCREMENT yang didukung oleh beberapa database lain). Dalam implementasi saat ini, menentukan:
CREATE TABLE tablename (
colname SERIAL
);
sama dengan menentukan:
CREATE SEQUENCE tablename_colname_seq;
CREATE TABLE tablename (
colname integer NOT NULL DEFAULT nextval('tablename_colname_seq')
);
ALTER SEQUENCE tablename_colname_seq OWNED BY tablename.colname;
Jadi, kami telah membuat kolom bilangan bulat dan mengatur nilai defaultnya untuk ditetapkan dari generator urutan. Batasan NOT NULL diterapkan untuk memastikan bahwa nilai null tidak dapat dimasukkan. (Dalam kebanyakan kasus, Anda juga ingin melampirkan batasan UNIQUE atau PRIMARY KEY untuk mencegah nilai duplikat dimasukkan secara tidak sengaja, tetapi ini tidak otomatis.) Terakhir, urutan ditandai sebagai kolom "dimiliki oleh", sehingga kolom tersebut akan dijatuhkan jika kolom atau tabel dijatuhkan.