Buayacorp
Reiniciar auto_increment cada año en MySQL
Mayo 28th, 2010 - [Enlace local]
Alguna vez vamos a necesitar reiniciar el contador del auto_increment cada año. Por ejemplo si tenemos una tabla recibos quisieramos que el número de recibo empieze desde 1 el año siguiente.
Para esto hay un pequeño artificio en MySQL que nos puede ayudar:
CREATE TABLE `recibos` ( `anio` year(4) NOT NULL, `ID` int(5) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`anio`,`ID`) ) ENGINE=MyISAM;
El truco está en que el campo primario debe ser la composición de dos campos; donde la columna con AUTO_INCREMENT es la segunda columna del índice.
/* Ingresamos datos */ INSERT INTO `recibos` (`anio`) VALUES ('2010'), ('2010'), ('2010'), ('2011'), ('2011'); /* Mostramos los datos */ SELECT * FROM `recibos`;
El resultado sería:
+------+----+ | anio | ID | +------+----+ | 2010 | 1 | | 2010 | 2 | | 2010 | 3 | | 2011 | 1 | | 2011 | 2 | +------+----+
La limitación es que este tipo artificio sólo funciona en tablas del tipo MyISAM.