Auto increment PostgreSQL
Auto increment i PostgreSQL
Det finns en "sequence" i Postgres som är ett speciellt databasobjekt vilket genererar en sekvens av heltal. Ofta använd som primary key i en tabell.
Skapa en ny tabell som använder detta sequence med:
CREATE TABLE tabellnamn( id SERIAL );
Detta sätter upp id som en auto_increment int i Postgres.
Vad Postgres gör detta fall är:
CREATE SEQUENCE table_name_id_seq;
CREATE TABLE table_name (
id integer NOT NULL DEFAULT nextval('table_name_id_seq')
);
ALTER SEQUENCE table_name_id_seq
OWNED BY table_name.id;
Det finns tre pseudo-typer av denna sequence:
SMALLSERIAL 2 byte 1-32768 SERIAL 4 byte 1-2 147 483 647 BIGSERIAL 8 byte 1-9 223 372 036 854 775 807
SERIAL skapar INTE ett index på kolumnen eller skapar en primary key.
Exempel på att använda SERIAL
CREATE TABLE fruits( id SERIAL PRIMARY KEY, name VARCHAR NOT NULL );