que tengo una tabla básica con columnas:Demasiados incrementos de automóviles con ON DUPLICATE KEY UPDATE
- id (primaria con AI)
- nombre (singular)
- etc
Si la columna única no existe, INSERTAR la fila; de lo contrario, ACTUALIZAR la fila ....
INSERT INTO pages (name, etc)
VALUES
'bob',
'randomness'
ON DUPLICATE KEY UPDATE
name = VALUES(name),
etc = VALUES(etc)
El problema es que si realiza una ACTUALIZACIÓN, el valor de auto_increment en la columna de ID aumenta. Entonces, si se realizan un montón de ACTUALIZACIONES, el id auto_increment se dispara.
parece ser que era un error: http://bugs.mysql.com/bug.php?id=28781
... pero yo estoy usando InnoDB en MySQL 5.5.8 de alojamiento compartido.
Otras personas que tienen problemas con la de hace años no hay solución: prevent autoincrement on MYSQL duplicate insert y Why does MySQL autoincrement increase on failed inserts?
ideas en una solución? ¿He estructurado la base de datos incorrectamente de alguna manera?
****** EDIT ****: Parece que agregar innodb_autoinc_lock_mode = 0 a su archivo my.ini corrige el problema, pero ¿qué opciones tengo para el alojamiento compartido?
****** EDIT 2 ******: OK, creo que mi única opción es cambiar a MyISAM como el motor de almacenamiento. Al ser un novato mega mySQL, espero que no cause muchos problemas. ¿Sí?
Un gran problema con MyISAM es que no es compatible con la definición de las relaciones de bases de datos. InnoDB sí lo admite. – bakkerjoeri
innodb_autoinc_lock_mode = 0 trabajado para mí. gracias –
Cambié a Aria (MyISAM en MariaDB) que impide el auto_increment – DanFromGermany