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.

Usando Google Font Api y Google Font Directory

Google acaba de anunciar la creación de un directorio de Fuentes Open Source que se pueden utilizar en nuestros sitios mediante una API.

Bajo el lema “Haciendo hermosa la web” podemos por ahora usar una lista de 18 fuentes con sus respectivas variantes.

¿Cómo usarlo?

El ejemplo que nos dejan es muy sencillo. Primero agregamos esta línea entre las etiquetas <head>:

HTML:
<link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Josefin+Sans+Std+Light" />

Y luego para que se vea en nuestra página agregamos el siguiente código CSS:

CSS:
                body {
                        font-family: 'Josefin Sans Std Light', arial, serif;
                        font-size: 48px;
                }

Donde el valor del parámetro family en el atributo href es la fuente que queremos usar. En el ejemplo escogí la fuente Josefin+Sans+Std+Light ya que es la fuente más parecida al logo de Buayacorp :).

El resultado con alguito de color:

google-font-buayacor-white

Y añadiendo alguito de código:

CSS:
                body {
                        font-family: 'Josefin Sans Std Light', arial, serif;
                        font-size: 48px;
                        text-shadow: 2px 2px 4px #aaa;
                        letter-spacing: -5px;
                        background: #4b4b4b;
                }

google-font-buayacor-gray

Ver el ejemplo >

¿Cómo funciona?

Básicamente lo que hace es usar la regla @font-face de CSS3. Revisando un poco el código veremos que estas fuentes funcionarán sólamente en en modo “screen” y no en impresión.

CSS:
@media screen {
@font-face {
  font-family: 'Josefin Sans Std Light';
  font-style: normal;
  font-weight: normal;
  src: local('Josefin Sans Std Light'), url('http://themes.googleusercontent.com/font?kit=doRWK9Qks0OQGenH-kW8nsnX9wMe89zs2uzox0MWMfk') format('truetype');
}
}

Vemos que tampoco funcionarán en navegadores antiguos.

Esperemos que con este tipo de ayudas, no se cometa el error del pasado de abusar como se hacía con la etiqueta <font>.

Es cierto que se podría lograr maravillas usando esta regla, sin embargo no se debe abusar de su uso.

Enlaces

Ejemplos y Demos de HTML5

Si quieres saber más sobre HTML5, te presentamos un interesante sitio en el que nos muestran ejemplos y demostraciones de esta nueva versión de HTML

Ejemplos y Demos de HTML5 tiene los ejemplos básicos del uso de HTML5 y los soportes de los navegadores más conocidos. Entre ellos Internet Explorer, Mozilla Firefox, Safari, Opera y Google Chrome.

Sólo como ejemplo muestro un bloque del cual podemos editar el texto, mostrado en ContentEditable:

HTML:

<section id="editable" contenteditable="true">
  <h2>¡Este texto se puede editar!</h2>
  <p>¿Por qué no lo intentas? Un párrafo cualquiera</p>
  <ol>
    <li>el primer ítem</li>
    <li>el segundo</li>
    <li>y el tercero</li>
  </ol>
</section>
 

Al añadir el atributo contenteditable="true" hacemos que ese bloque se pueda editar, como si estaríamos usando TinyMCE o FCKEditor. El código anterior funciona en todos los navegadores modernos.

Puedes ver el demo.

Reconozco que es el primer ejemplo de HTML5 que hago en mi vida, así que si me sirvió también te puede servir a tí :D.

Enlaces