Sequence e auto-increment
Dare numeri a mano è scomodo e rischioso
Sezione intitolata “Dare numeri a mano è scomodo e rischioso”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.
Un esempio semplice
Sezione intitolata “Un esempio semplice”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:
IDENTITYoSERIAL - MySQL:
AUTO_INCREMENT - SQL Server:
IDENTITY - SQLite:
INTEGER PRIMARY KEY
Perché è comodo
Sezione intitolata “Perché è comodo”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
Una cosa importante da capire
Sezione intitolata “Una cosa importante da capire”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.