MySQL AUTO_INCREMENT con ejemplos

 

¿Qué es el incremento automático?

Auto Increment es una función que opera en tipos de datos numéricos. Genera automáticamente valores numéricos secuenciales cada vez que se inserta un registro en una tabla para un campo definido como incremento automático.

¿Cuándo usar el incremento automático?

En la lección sobre la normalización de la base de datos, analizamos cómo se pueden almacenar los datos con una redundancia mínima, al almacenar datos en muchas tablas pequeñas, relacionadas entre sí mediante claves primarias y externas.

Una clave principal debe ser única ya que identifica de manera única una fila en una base de datos. Pero, ¿cómo podemos asegurarnos de que la clave principal siempre sea única? Una de las soluciones posibles sería utilizar una fórmula para generar la clave principal, que verifica la existencia de la clave en la tabla, antes de agregar datos. Esto puede funcionar bien, pero como puede ver, el enfoque es complejo y no infalible. Para evitar dicha complejidad y garantizar que la clave principal sea siempre única, podemos usar la función Incremento automático de MySQL para generar claves primarias. El incremento automático se usa con el tipo de datos INT. El tipo de datos INT admite valores firmados y no firmados. Los tipos de datos sin firmar solo pueden contener números positivos. Como práctica recomendada, se recomienda definir la restricción sin signo en la clave primaria de incremento automático.

Sintaxis de incremento automático

Veamos ahora el script utilizado para crear la tabla de categorías de películas.

 

 

Observe el “AUTO_INCREMENT” en el campo category_id. Esto hace que el identificador de categoría se genere automáticamente cada vez que se inserta una nueva fila en la tabla. No se suministra cuando se insertan datos en la tabla, MySQL lo genera.

De forma predeterminada, el valor inicial para AUTO_INCREMENT es 1, y se incrementará en 1 para cada nuevo registro

Examinemos el contenido actual de la tabla de categorías.

Ejecutar el script anterior en MySQL workbench contra myflixdb nos da los siguientes resultados.

categoria ID nombre de la categoría observaciones
1 Comedia Películas con humor
2 Romántico Historias de amor
3 Épico Cuentos acient movies
4 Horror NULO
5 Ciencia ficción NULO
6 Novela de suspenso NULO
7 Acción NULO
8 Comedia romántica NULO

Insertemos ahora una nueva categoría en la tabla de categorías.

Ejecutar el script anterior contra myflixdb en MySQL workbench nos da los siguientes resultados que se muestran a continuación.

categoria ID nombre de la categoría observaciones
1 Comedia Películas con humor
2 Romántico Historias de amor
3 Épico Cuentos acient movies
4 Horror NULO
5 Ciencia ficción NULO
6 Novela de suspenso NULO
7 Acción NULO
8 Comedia romántica NULO
9 Dibujos animados NULO

Tenga en cuenta que no proporcionamos la identificación de categoría. MySQL lo generó automáticamente para nosotros porque la identificación de categoría se define como incremento automático.

Si desea obtener la última identificación de inserción que fue generada por MySQL, puede usar la función LAST_INSERT_ID para hacer eso. El script que se muestra a continuación obtiene la última identificación que se generó.

La ejecución de la secuencia de comandos anterior proporciona el último número de incremento automático generado por la consulta INSERTAR. Los resultados se muestran a continuación.

Resumen

  • El atributo de incremento automático cuando se especifica en una columna con tipos de datos numéricos, genera números secuencialmente cada vez que se agrega una nueva fila a la base de datos.
  • El incremento automático se usa comúnmente para generar claves primarias.
  • El tipo de datos definido en el incremento automático debe ser lo suficientemente grande para acomodar muchos registros. Definir TINYINT como el tipo de datos para un campo de incremento automático limita el número de registros que se pueden agregar a la tabla a 255 solo porque cualquier valor más allá de eso no sería aceptado por el tipo de datos TINYINT.
  • Se considera una buena práctica especificar la restricción sin signo en las claves primarias de incremento automático para evitar tener números negativos.
  • Cuando se elimina una fila de una tabla, su id. Incrementada automáticamente no se vuelve a utilizar. MySQL continúa generando nuevos números secuencialmente.
  • De forma predeterminada, el valor inicial para AUTO_INCREMENT es 1, y se incrementará en 1 para cada nuevo registro
  • Para permitir que la secuencia AUTO_INCREMENT comience con otro valor, use AUTO_INCREMENT = 10

 

0 replies

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

Your email address will not be published. Required fields are marked *