Trong PostgreSQL, khi tạo bảng CSDL chúng ta sử dụng SERIAL để định nghĩa 1 auto-increment column – column có ID (integer) tự động tăng.
Khi column được định nghĩa là SERIAL, PostgreSQL sẽ tạo ra 1 column với kiểu dữ liệu Integer và tạo ra 1 sequence cho column đó. Sequece là 1 đối tượng dữ liệu của kiểu dữ liệu Integer tự động tăng trong PostgreSQL.
Các loại SERIAL Datatype trong PostgreSQL
| Name | Storage Size | Range |
| SMALLSERIAL | 2 bytes | 1 to 32,767 |
| SERIAL | 4 bytes | 1 to 2,147,483,647 |
| BIGSERIAL | 8 bytes | 1 to 9,223,372,036,854,775,807 |
Tạo Auto-Increment Column sử dụng SERIAL
Cú pháp lệnh:
CREATE TABLE table_name( id SERIAL );
Ví dụ: Tạo bảng groups với trường group_id là auto-increment column
CREATE TABLE groups
(
group_id SERIAL,
group_name character varying COLLATE pg_catalog."default" NOT NULL,
created_at timestamp without time zone NOT NULL,
updated_at timestamp without time zone,
deleted_at timestamp without time zone,
CONSTRAINT groups_pkey PRIMARY KEY (group_id)
)
Kết quả:
Chúng ta tạo được 1 sequece có tên là: groups_group_id_seq và nó được gán vào column group_id của bảng groups

Để kiếm tra lại, thử insert dữ liệu vào bảng groups bằng câu SQL sau:
INSERT INTO groups(group_name, created_at) VALUES('staff', '2019-09-12 00:00:00');
INSERT INTO groups(group_name, created_at) VALUES('sale', '2019-09-13 00:00:00');
INSERT INTO groups(group_name, created_at) VALUES('admin', '2019-09-14 00:00:00');
Kết quả:
