Salta ai contenuti

Sequence e auto-increment

Molte tabelle hanno una colonna id che cresce automaticamente. È come il numeretto preso in fila: ogni volta il sistema assegna il successivo.

Questo evita di dover scegliere gli identificatori a mano, con il rischio di errori o duplicati.

In molti database puoi chiedere al sistema di creare automaticamente l’identificatore:

CREATE TABLE clienti (
id INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
nome VARCHAR(100)
);

Quando inserisci un cliente, non scrivi tu l’id:

INSERT INTO clienti (nome)
VALUES ('Luca');

Il database assegna il prossimo numero disponibile.

I nomi cambiano a seconda del database:

  • PostgreSQL: IDENTITY o SERIAL
  • MySQL: AUTO_INCREMENT
  • SQL Server: IDENTITY
  • SQLite: INTEGER PRIMARY KEY

L’auto-incremento è utile quando:

  • hai bisogno di una chiave primaria numerica
  • vuoi evitare collisioni tra identificatori
  • non vuoi preoccuparti di scegliere il prossimo numero

Il numero automatico serve soprattutto come identificatore tecnico. Non sempre è una buona idea attribuirgli significati di business, come numero fattura o codice pubblico visibile all’utente.

Per quei casi, spesso servono regole diverse.