Cómo establecer auto incremento en SQL con phpMyAdmin


Una práctica habitual en la creación de bases de datos es establecer claves primarias (o Primary Keys, PKs) con la opción de auto incremento. De esta manera, no hay que preocuparse por especificar un valor numérico único de clave primaria cada vez que se inserte una nueva fila en la tabla.


Pese a que phpMyAdmin es una herramienta de gestión de bases de datos muy útil y fácil de usar, muchas verces oigo la pregunta de dónde especificar el auto incremento en phpMyAdmin. He aquí la solución:


En las últimas versiones de phpMyAdmin hay una nueva casilla llamada A_I. No hay más que marcar esta opción al crear o editar la columna de la tabla que contendrá la clave primaria, y ese campo numérico incrementará automáticamente su valor cada vez que se inserte una nueva fila.


Auto incremento en phpMyAdmin

Para comprobar que la propiedad de auto incremento se configuró correctamente, no hay más que mirar en la columna EXTRA dentro de las propiedades de la columna de la clave primaria de la tabla (tras haber seleccionado la tabla, y dentro de la sección de estructura, Structure). Si en extra aparece el texto auto_increment, la configuración del incremento automático fue exitosa.


Sin embargo, en versiones más antiguas de phpMyAdmin, el auto incremento se configuraba de forma diferente, editando directamente estas propiedades extra de la columna. La opción de auto_increment se encontraba dentro de un menú desplegable en la categoría EXTRA (la última columna en el menú de creación de campos).


Para poder acceder a este menú de edición de columnas de la tabla no hay más que hacer clic en el icono del lápiz en la fila de la estructura (dentro de la solapa Structure) que se corresponde con la columna de la tabla que se desea editar.


En cualquier caso, siempre se puede ejecutar una sencilla consulta SQL para actualizar el estado de la columna y habilitar el auto incremento. Desde phpMyAdmin sólo hay que seleccionar la solapa marcada como SQL y escribir una sentencia SQL como la siguiente:

ALTER TABLE `nombre_tabla`
    CHANGE `nombre_columna_pk` `nombre_columna_pk`
           INT(longitud_clave) NOT NULL AUTO_INCREMENT

Sólo hay que reemplazar "nombre_tabla" por el nombre de la tabla que se está editando, "nombre_columna_pk" por el nombre de la columna que contiene la clave primaria, y "longitud_clave" por la longitud del número usado como clave primaria (el valor por defecto para un entero, int, es la longitud 11).


Si necesita asegurarse de que el campo que se está auto-incrementando es de hecho la clave primaria de la tabla actual, se puede volver a asignar la clave primaria de la tabla pulsando en el icono de llave correspondiente a la fila del campo deseado.


Hay que tener en cuenta que sólo puede especificarse un campo con auto incremento por cada tabla en MySQL. Por otra parte, el incremento automático sólo tiene sentido con claves primarias numéricas, y sólo puede haber una clave primaria en cada tabla MySQL.


Por último, si lo que desea es cambiar el valor del auto incremento en phpMyAdmin (por ejemplo, para que el campo de auto incremento comience en un número concreto), sólo hay que seleccionar la solapa Operations (operaciones) en phpMyAdmin, y escribir en el campo llamado AUTO_INCREMENT el nuevo valor inicial del campo con auto incremento y guardar los cambios.