Auto increment PostgreSQL: Difference between revisions

From Linuxwiki
Jump to navigation Jump to search
Linuxwiki>Wikiadmin
m 2 revisions imported
 
(No difference)

Latest revision as of 17:04, 11 May 2026

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

Skapa en tabell:

CREATE TABLE fruits(
   id SERIAL PRIMARY KEY,
   name VARCHAR NOT NULL
);

Sätt in data:

INSERT INTO fruits(name)
VALUES('Orange');

eller

INSERT INTO fruits(id,name)
VALUES(DEFAULT,'Apple');

Kategori:PostgreSQL