Anuncia aquí

Reiniciar auto_increment cada año en MySQL

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 |
+------+----+
| 20101 |
| 20102 |
| 20103 |
| 20111 |
| 20112 |
+------+----+

La limitación es que este tipo artificio sólo funciona en tablas del tipo MyISAM.

Esta entrada fue publicada en MySQL y clasificada en , ,

Un Trackback

  1. [...] This post was mentioned on Twitter by brau, Buayacorp. Buayacorp said: RT @brau: Iniciando auto_increment cada año http://bit.ly/dtThtq #mysql [...]

Publicar un Comentario

Tu email nunca será publicado o compartido. Los campos requeridos están marcados con un *

*
*

Puedes usar estas etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>