Auto increment PostgreSQL: Difference between revisions
Jump to navigation
Jump to search
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...' |
Linuxwiki>Wikiadmin |
||
| Line 27: | Line 27: | ||
=== Exempel på att använda SERIAL === | === Exempel på att använda SERIAL === | ||
Skapa en tabell: | |||
'''CREATE TABLE fruits(''' | '''CREATE TABLE fruits(''' | ||
''' id SERIAL PRIMARY KEY,''' | ''' id SERIAL PRIMARY KEY,''' | ||
''' name VARCHAR NOT NULL''' | ''' 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]] | |||
Revision as of 14:22, 28 June 2024
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');