Mysql: inserire in una colonna un contatore sequenziale di riga

Tags: 

A volte può servire inserire in una select un contatore sequenziale, in modo che ad ogni record venga generato il numero successivo. Ad esempio per generare degli ID incrementali per una "insert into table". Ecco come:

SELECT @c := @c + 1, ... FROM ..., (SELECT @c := 0) c

L'esempio effettua un conteggio da 1 a 10, variando i numeri è possibile ovviamente cambiarlo. Ad esempio, per inserire degli utenti drupal:

SELECT @curRow := VALUE FROM sequences;
INSERT INTO users (uid, ...) SELECT @curRow := @curRow + 1 uid, ... FROM externale_table ...;
DELETE FROM sequences; INSERT INTO sequences (VALUE) VALUES(@curRow + 1);

Aggiungi un commento