Noticias Weblogs Foros Wiki Código

Meta-Info

¿Que es?

Planeta Código es un agregador de weblogs sobre programación y desarrollo en castellano. Si eres lector te permite seguirlos de modo cómodo en esta misma página o mediante el fichero de subscripción.

rss subscripción

Sponsors

Puedes utilizar las siguientes imagenes para enlazar PlanetaCodigo:
planetacodigo

planetacodigo

Si tienes un weblog de programación y quieres ser añadido aquí, envíame un email solicitándolo.

Idea: Juanjo Navarro

Diseño: Albin

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:

SQL:
 
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.

SQL:
 
/* Ingresamos datos */
INSERT INTO `recibos` (`anio`) VALUES ('2010'), ('2010'), ('2010'), ('2011'), ('2011');
 
/* Mostramos los datos */
SELECT * FROM `recibos`;
 

El resultado sería:

CODE:
 
+------+----+
| 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.

» Leer más, comentarios, etc...

Información legal y técnica