He estado repasando unas cosas de base de datos y me resulto un problema con el auto_increment de mysql, inserto un grupo de 10 y todo bien, en teoría el próximo auto_increment seria el 11, pero me aparece que es el 16. Inserto otro grupo de 10 en teoría el próximo seria el 26 pero me sale que es el 31, y así sucesivamente.
He determinado que es un trigger en esa tabla que me causa problema ¿porquè? es lo que no he podido averiguar todavía, pero he probado eliminar ese trigger, vaciar la tabla y llenar datos en grupos de 10 otra vez y así funciona excelente.
La estrutura de la tabla es:
Código SQL:
Ver originalCREATE TABLE `nombres` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`nombres` VARCHAR(20) CHARACTER SET utf8 DEFAULT NULL,
`apellidos` VARCHAR(20) CHARACTER SET utf8 DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB
y el trigger es:
Código SQL:
Ver originalCREATE TRIGGER `respaldo_nombres` AFTER UPDATE ON `nombres`
FOR EACH ROW BEGIN
INSERT INTO `respaldo_nombres` SET
respaldo_nombres.id=OLD.id,
respaldo_nombres.NombresAntiguos=OLD.nombres,
respaldo_nombres.NombresNuevos=NEW.nombres,
respaldo_nombres.apellidosAntiguos=OLD.apellidos,
respaldo_nombres.apellidosNuevos=NEW.apellidos
ON duplicate KEY UPDATE
respaldo_nombres.NombresAntiguos=OLD.nombres,
respaldo_nombres.NombresNuevos=NEW.nombres,
respaldo_nombres.apellidosAntiguos=OLD.apellidos,
respaldo_nombres.apellidosNuevos=NEW.apellidos;
END
Esta es la sentencia de prueba que utilizo para insertar los datos:
Código SQL:
Ver originalINSERT INTO nombres(nombres,apellidos) VALUES ('asdifh','sdffg'),('asdifh','sdffg'),('asdifh','sdffg'),('asdifh','sdffg'),('asdifh','sdffg'),('asdifh','sdffg'),('asdifh','sdffg'),('asdifh','sdffg'),('asdifh','sdffg'),('asdifh','sdffg')
Ojala alguien me pueda dar una pista de lo que puede estar mal.