Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/01/2010, 16:34
harryp
 
Fecha de Ingreso: mayo-2008
Mensajes: 117
Antigüedad: 15 años, 11 meses
Puntos: 8
es posible hacer que autoincrement solo incremente si se inserta realmente el campo?

Estoy desarrollando una especie de tienda en mysql, el caso es que tengo algunas tablas que contienen algún campo auto increment. Me funciona perfecta mente per haciendo pruevas me doy cuenta que si intento repetir un registro (para que no me deje insertar) el numerador de auto_increment se incrementa sin haber insertado ningún registro, por lo que cuando voy a insertar un registro bueno el auto_incrementa esta 2 números por encima del ultimo registro insertado... ( si envio 10 consultas erroneas para que no se ejecuten, son 10 números los que se incrementa )
Como podría evitar esto?

Una tablla cualquiera (para ilustrar un poco el ejemplo)
Código PHP:
Create table categories (
codi integer not null auto_increment,
nom varchar(30not null,
descripcio varchar(30not null,
primary key(codi,nom),
unique restnom(nom)
Engine=Innodb
luego ejecuto

Código PHP:
Insert into categories (nom,descripciovalues ('pescado','primer registro, tendra codi=1');
Insert into categories (nom,descripciovalues ('pescado','este no se inserta, salta como duplicado');
Insert into categories (nom,descripciovalues ('carne','este si que se inserta, pero el auto_increment le asigna codi=3'); 
lo que quiero es que si no se inserta no se aumente el numero de las categorias existentes.

Gracias de antemano
Un saludo