Auto increment PostgreSQL

From Linuxwiki
Revision as of 14:20, 28 June 2024 by Linuxwiki>Wikiadmin (Skapade sidan med '==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 integ...')
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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
);