Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/01/2011, 17:06
hugotuxsv
 
Fecha de Ingreso: noviembre-2010
Ubicación: El Salvador
Mensajes: 44
Antigüedad: 13 años, 5 meses
Puntos: 6
Auto_increment se salta id's

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 original
  1. CREATE TABLE `nombres` (
  2.  `id` INT(11) NOT NULL AUTO_INCREMENT,
  3.  `nombres` VARCHAR(20) CHARACTER SET utf8 DEFAULT NULL,
  4.  `apellidos` VARCHAR(20) CHARACTER SET utf8 DEFAULT NULL,
  5.  PRIMARY KEY (`id`)
  6. ) ENGINE=InnoDB

y el trigger es:
Código SQL:
Ver original
  1. CREATE TRIGGER `respaldo_nombres` AFTER UPDATE ON `nombres`
  2.  FOR EACH ROW BEGIN
  3. INSERT INTO `respaldo_nombres` SET
  4. respaldo_nombres.id=OLD.id,
  5. respaldo_nombres.NombresAntiguos=OLD.nombres,
  6. respaldo_nombres.NombresNuevos=NEW.nombres,
  7. respaldo_nombres.apellidosAntiguos=OLD.apellidos,
  8. respaldo_nombres.apellidosNuevos=NEW.apellidos
  9. ON duplicate KEY UPDATE
  10. respaldo_nombres.NombresAntiguos=OLD.nombres,
  11. respaldo_nombres.NombresNuevos=NEW.nombres,
  12. respaldo_nombres.apellidosAntiguos=OLD.apellidos,
  13. respaldo_nombres.apellidosNuevos=NEW.apellidos;
  14. END

Esta es la sentencia de prueba que utilizo para insertar los datos:
Código SQL:
Ver original
  1. INSERT 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.