Neid kasutatakse surrogaatvõtmete realiseerimiseks. Need võimaldavad tabeli veeru korral määrata, et tegemist on identiteedi veeruga. Selle määramise tulemusel loob andmebaasisüsteem automaatselt sisemise arvujada generaatori ja seob veeruga. Kui kasutaja lisab tabelisse rea, siis genereerib süsteem sinna veergu automaatselt unikaalse täisarvulise väärtuse. Erinevus on selles, kas ja kuidas saab kasutaja võtmeveergu ise väärtust lisada.
  • GENERATED BY DEFAULT AS IDENTITY - saab lihtsasti,
  • GENERATED ALWAYS AS IDENTITY - saab, aga peab selleks midagi lisaks tegema.

CREATE TABLE Teenus (teenus_id INTEGER GENERATED BY DEFAULT AS IDENTITY,
nimi VARCHAR(50) NOT NULL,
CONSTRAINT pk_teenus PRIMARY KEY (teenus_id),
CONSTRAINT ak_teenus_nimi UNIQUE (nimi));
 
INSERT INTO Teenus (teenus_id, nimi) VALUES (1, 'Peapesu');
INSERT INTO Teenus (nimi) VALUES ('Kaelapesu');
/*ERROR:  duplicate key value violates unique constraint "pk_teenus"*/
 
DROP TABLE IF EXISTS Teenus;
 
CREATE TABLE Teenus (teenus_id INTEGER GENERATED ALWAYS AS IDENTITY,
nimi VARCHAR(50) NOT NULL,
CONSTRAINT pk_teenus PRIMARY KEY (teenus_id),
CONSTRAINT ak_teenus_nimi UNIQUE (nimi));
 
INSERT INTO Teenus (teenus_id, nimi) VALUES (1, 'Peapesu');
/*ERROR:  cannot insert a non-DEFAULT value into column "teenus_id"
DETAIL:  Column "teenus_id" is an identity column defined as GENERATED ALWAYS.
HINT:  Use OVERRIDING SYSTEM VALUE to override.*/
 
INSERT INTO Teenus (nimi) VALUES ('Kaelapesu');

INSERT INTO Teenus (teenus_id, nimi) OVERRIDING SYSTEM VALUE VALUES (2, 'Peapesu');

GENERATED BY DEFAULT AS IDENTITY korral on probleemiks, et mõnikord võib kasutaja registreerida võtmeväärtuse ise, mõnikord võib lasta genereerida süsteemi. Süsteemi genereeritud väärtus võib minna konflikti kasutaja enda poolt varem lisatud väärtusega ja rea lisamine ebaõnnestub. Ka GENERATED ALWAYS AS IDENTITY korral on see võimalus, kuid see ei saa juhtuda juhuslikult, vaid kasutaja peab selleks ilmutatult ise midagi tegema. Juhuslike vigade vältimiseks tasuks eelistada GENERATED ALWAYS AS IDENTITY.

GENERATED BY DEFAULT AS IDENTITY käitumine sarnaneb SERIAL notatsiooni kasutamisele.