back to top

Reset degli ID in una tabella MySQL

In MySQL, a volte, può essere utile effettuare una riassegnazione del valore di un campo di tipo AUTO_INCREMENT (ad esempio il valore univoco ID che spesso viene assegnato a ciascun record). E’ buona norma non alterare una colonna con identificativi univoci ma, in talune circostanze (quando, ad esempio, l’ID non è utilizzato per creare JOIN con dati presenti in altre tabelle e non è un elemento persistente all’interno del nostro applicativo) è anche possibile avere la necessità di effettuare il reset degli ID, mediante una nuova assegnazione che, partendo da uno, eliminerà ogni eventuale "buco" di numerazione..

Al fine di svolgere questa operazione di reset di un campo auto-incrementale in MySQL è possibile utilizzare questa semplice query:

SET @num := 0;
UPDATE nome_tabella SET nome_campo = @num := (@num+1);
ALTER TABLE nome_tabella AUTO_INCREMENT =1;

Il codice, ovviamente, deve essere modificato in base alla struttura della tabella sulla quale si desidera intervenire, in pratica:

  • deve essere sostituito "nome_tabella" col nome effettivo della tabella su cui si vuole applicare la modifica;
  • deve essere sostituito "nome_campo" col nome del campo AUTO_INCREMENT che si desidera resettare.

Supponiamo di voler resettare il campo ID di una ipotetica tabella prodotti, per farlo utilizzeremo questo codice:

SET @num := 0;
UPDATE prodotti SET id = @num := (@num+1);
ALTER TABLE prodotti AUTO_INCREMENT =1;
Pubblicitร 
Massimiliano Bossi
Massimiliano Bossi
Stregato dalla rete sin dai tempi delle BBS e dei modem a 2.400 baud, ho avuto la fortuna di poter trasformare la mia passione in un lavoro (nonostante una Laurea in Giurisprudenza). Adoro scrivere codice e mi occupo quotidianamente di comunicazione, design e nuovi media digitali. Orgogliosamente "nerd" sono il fondatore di MRW.it (per il quale ho scritto centinaia di articoli) e di una nota Web-Agency (dove seguo in prima persona progetti digitali per numerosi clienti sia in Italia che all'estero).

Leggi anche...

Come ottenere l’ID dell’ultimo record inserito in MySQL, PostgreSQL, SQL Server e Oracle?

Ottenere l'ID dell'ultimo record inserito in una tabella, dopo...

Database completo regioni, province e comuni italiani (in formato SQL)

Quando si sviluppa un sito web o un'applicazione in...

File CSV: cosa sono, come si aprono e come crearli

In questo articolo cercheremo di capire cos'รจ il formato...

Confrontare due tabelle e trovare i record senza corrispondenza

all'interno di un database relazionale può essere utile poter...

Eseguire comandi SQL online con SQL Fiddle

Sì. E' possibile testare codice SQL senza aver installato...

SQL: Calcolare la media dei valori di più campi

Attraverso una semplice query SQL è possibile calcolare dinamicamente...
Pubblicitร