Auto increment PostgreSQL
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
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');