PostgreSQL - AUTO INCREMENT

PostgreSQL hat die Datentypen smallserial , serial und bigserial . Dies sind keine echten Typen, sondern lediglich eine Annehmlichkeit zum Erstellen eindeutiger Bezeichnerspalten. Diese ähneln der Eigenschaft AUTO_INCREMENT, die von einigen anderen Datenbanken unterstützt wird.

Wenn eine serielle Spalte eine eindeutige Einschränkung haben oder ein Primärschlüssel sein soll, muss sie jetzt wie jeder andere Datentyp angegeben werden.

Der Typname serial erstellt eine Ganzzahlspalte . Der Typname bigserial erstellt eine bigint- Spalte. bigserial sollte verwendet werden, wenn Sie die Verwendung von mehr als 2 31 Bezeichnern über die Lebensdauer der Tabelle erwarten . Der Typname smallserial erstellt eine smallint- Spalte.

Syntax

Die grundlegende Verwendung von SERIAL dataype ist wie folgt -

CREATE TABLE tablename (
   colname SERIAL
);

Beispiel

Betrachten Sie die zu erstellende COMPANY-Tabelle wie folgt:

testdb=# CREATE TABLE COMPANY(
   ID  SERIAL PRIMARY KEY,
   NAME           TEXT      NOT NULL,
   AGE            INT       NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL
);

Fügen Sie nun die folgenden Datensätze in die Tabelle COMPANY ein -

INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
VALUES ( 'Paul', 32, 'California', 20000.00 );

INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
VALUES ('Allen', 25, 'Texas', 15000.00 );

INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
VALUES ('Teddy', 23, 'Norway', 20000.00 );

INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
VALUES ( 'Mark', 25, 'Rich-Mond ', 65000.00 );

INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
VALUES ( 'David', 27, 'Texas', 85000.00 );


INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
VALUES ( 'Kim', 22, 'South-Hall', 45000.00 );

INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
VALUES ( 'James', 24, 'Houston', 10000.00 );

Dadurch werden sieben Tupel in die Tabelle UNTERNEHMEN eingefügt, und UNTERNEHMEN verfügt über die folgenden Datensätze:

id | name  | age | address    | salary
----+-------+-----+------------+--------
  1 | Paul  |  32 | California |  20000
  2 | Allen |  25 | Texas      |  15000
  3 | Teddy |  23 | Norway     |  20000
  4 | Mark  |  25 | Rich-Mond  |  65000
  5 | David |  27 | Texas      |  85000
  6 | Kim   |  22 | South-Hall |  45000
  7 | James |  24 | Houston    |  10000