Cómo usar el auto-incremento MySQL

Cómo usar el auto-incremento MySQL
El auto-incremento es un atributo muy importante de MySQL. Cuando una tabla requiere un campo numérico que se incrementará automáticamente para generar un número secuencial, entonces el atributo de auto-incremento se usa para ese campo. El campo de incremento automático se puede asignar como la clave principal o la clave única para una tabla si requiere. Este campo no puede almacenar el valor nulo. Entonces, cuando el atributo de incremento automático se establece para cualquier campo de una tabla, entonces la restricción nula se establecerá automáticamente para ese campo. Cuando los nuevos registros deben insertar en una tabla que contenga el campo de incremento automático, el usuario no necesita proporcionar ningún valor para ese campo. En este artículo se muestra cómo funciona este atributo en las tablas MySQL.

Características del campo de incremento automático:

  • El primer registro de este campo siempre comienza desde 1 por defecto y se incrementa en 1 cuando un nuevo registro se inserta.
  • Si el usuario especifica cualquier valor numérico particular sin nulo para este campo en el momento de la inserción que no está en el orden secuencial, MySQL generará un mensaje de error, MySQL generará un mensaje de error,.
  • Si algún valor de este campo es actualizado por otro valor que ya existe en la tabla, MySQL generará un mensaje de error.
  • Si el usuario elimina los últimos registros de la tabla, ¿cuál será el nuevo número secuencial depende del motor de la tabla?. La tabla innoDB nunca genera el número generado previamente cuando se inserta un nuevo registro, pero la tabla Myisam genera el último número secuencial que se elimina de la tabla.
  • La función de last_insert_id () se utiliza para recuperar el valor del número que se genera en la última inserción.

Sintaxis:

Crear tabla 1
(
Field1 DataType Auto_incement [Clave principal],
Field2 DataType [NULL | NO NULO ],

Tipo de datos Fieldn [NULL | NO NULO ],
);

Aquí, campo1 se define como campo de incremento automático y el tipo de datos de este campo puede ser cualquier tipo de datos numérico como EN T o EMPEZANDO. No es obligatorio definir el campo de incremento automático como la clave principal. Pero se puede usar como una clave principal para crear una relación entre dos tablas.

Requisito previo:

Ejecute los siguientes comandos SQL para crear una base de datos llamada 'novato'y seleccione la base de datos para crear tablas con atributo de auto-incremento.

Crear base de datos newdb;
usa newdb;

Crea una tabla con incremento automático:

Ejecute la siguiente instrucción Crear para crear una tabla llamada estudiantes dónde identificación El campo se creará con el atributo de auto-incremento y se establecerá como una clave principal. A continuación, se ejecutarán dos tipos de declaraciones de inserción. En la primera declaración de inserción, no se menciona ningún nombre de campo en la consulta de insertos y debe proporcionar todos los valores de campo de la tabla para este tipo de inserción. Aquí, el nulo el valor se usa para identificación campo. En la segunda declaración de inserción, todos los campos, excepto el campo de incremento automático, se mencionan en la consulta de insertos porque se generará automáticamente. A continuación, la instrucción SELECT se ejecuta para mostrar el contenido de estudiantes mesa.

Crear estudiantes de mesa (
ID int Unsigned Auto_incement,
Nombre Varchar (50) No nulo,
lotes pequeños no nulo,
semestre pequeño no nulo,
Clave principal (ID)
);
Insertar en los valores de los estudiantes
(Nulo, 'Masrafi', 41, 9);
Insertar en valores de estudiantes (nombre, lote, semestre)
('Sakib', 43, 7);
Seleccionar * de los estudiantes;

Puede establecer el valor del campo de incremento automático manualmente, pero debe mantener el orden secuencial. No puede establecer ningún valor inferior al último valor insertado o igual a ningún valor existente. La siguiente instrucción de primer inserto funcionará correctamente porque el último valor insertado fue 2. La segunda declaración de inserción generará un error porque el valor 2 ya existe en la tabla.

Insertar en los valores de los estudiantes
(4, 'Robel', 41, 9);
Insertar en los valores de los estudiantes
(2, 'Manzarul', 41, 9);

Cree una tabla con auto-incremento y Zerofill sin firmar:

Mencionó anteriormente que el campo de incremento automático comienza desde 1 por defecto. Pero si usa el atributo Zerofill sin firmar con el campo de incremento automático y establece la longitud del número, entonces el número se generará con cero liderazgo basado en la longitud. La siguiente declaración de creación creará una tabla llamada maestros Donde los atributos de auto-incremento y zerofill sin firmar están establecidos para tch_id campo y la longitud del campo se establece en 4. A continuación, algunos datos se insertarán en la tabla mediante la instrucción Insertar y la instrucción SELECT mostrará todo el contenido de la tabla.

Crear maestros de mesa (
TCH_ID MediumInt (4) Zerofill Auto_incement sin firmar,
Nombre Varchar (50) No nulo,
Departamento Varchar (10) No es nulo,
Clave primaria (TCH_ID)
);
Insertar en los valores de los maestros
(NULL, 'Maria', 'CSE'),
(NULL, 'JANIFER', 'BBA'),
(Nulo, 'Micheal', 'Eng');
Seleccionar * de los maestros;

Aquí, se muestra que 0001, 0002 y 0003 se generan como valores TCH_ID.

Ahora, si elimina el último registro e inserta un nuevo registro, entonces un nuevo número más el valor TCH_ID eliminado se generará como nuevo tch_id.

Eliminar de los maestros donde tch_id = 3;
Insertar en los valores de los maestros
(Nulo, 'Mahmuda', 'CSE');
Seleccionar * de los maestros;

Restablecimiento del campo de incremento automático:

Si todos los registros se eliminan del maestros tabla que contiene el campo de incremento automático y luego el nuevo valor de tch_id se generará después del último valor insertado. Después de ejecutar las siguientes declaraciones SQL, se mostrará que el recién generado tch_id es 0005 Porque el último valor insertado fue 0004.

Eliminar de los maestros;
Insertar en los valores de los maestros
(NULL, 'LUCY', 'EEE');
Seleccionar * de los maestros;

Si desea restablecer la tabla e iniciar el valor de 1 nuevamente, debe ejecutar la declaración truncada en lugar de la instrucción Eliminar. Esto se muestra en las siguientes tres declaraciones.

Maestros de mesa truncados;
Insertar en los valores de los maestros
(NULL, 'LUCY', 'EEE');
Seleccionar * de los maestros;

Obtendrá la siguiente salida después de ejecutar las declaraciones.

Si desea cambiar el valor predeterminado de los campos de incremento automático, entonces debe ejecutar la instrucción ALTER con el valor inicial de auto-incremento. A continuación, inserte un registro y verifique el valor del campo de incremento automático. Aquí, el valor inicial se establecerá en 15.

Maestros de mesa truncados;
Alter tabla maestros auto_increment = 15;
Insertar en los valores de los maestros
(NULL, 'LUCY', 'EEE');
Seleccionar * de los maestros;

La siguiente salida aparecerá después de ejecutar las declaraciones SQL anteriores.

Conclusión:

Los propósitos del atributo de incremento automático se explican correctamente mediante el uso de tablas de muestra en este artículo para ayudar al usuario de MySQL a comprender los usos de este atributo.