Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

duda con tipo de dato auto_increment

Estas en el tema de duda con tipo de dato auto_increment en el foro de Mysql en Foros del Web. Hola Comunidad ! Amigos tengo una duda que sinceramente con el manual de mysql no se me ha aclarado le comento por si pueden ayudarme ...
  #1 (permalink)  
Antiguo 04/03/2009, 20:41
 
Fecha de Ingreso: abril-2007
Mensajes: 46
Antigüedad: 17 años, 1 mes
Puntos: 0
duda con tipo de dato auto_increment

Hola Comunidad !

Amigos tengo una duda que sinceramente con el manual de mysql no se me ha aclarado le comento por si pueden ayudarme

Estoy trabajando con una base dato en mysql 5 , y tengo una tabla bajo el motor innodb con un id auto_increment , y resulta que me genera bien los id automaticamente pero si borro algún registro , principalmente el último que he insertado , cuando vuelvo a insertar uno nuevo me reutiliza el id que ya había borrado y yo necesito que no lo reutilice ,
Mi pregunta es si existe alguna forma de restringirle que no lo reutilice ... una vez que se genere no se pueda volver a usar ... tal cual lo hace por ejemplo mssql

Saludos Antares
  #2 (permalink)  
Antiguo 05/03/2009, 04:19
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: duda con tipo de dato auto_increment

Las únicas posibilidades que conozco de que suceda eso, es que:
1. Le estés enviando el campo a insertar y su valor, caso en el que simplemente lo coloca, porque el número ya no existe en la tabla.
2. Estés realizando algún ALTER TABLE que modifique el AUTO_INCREMENT.
3. Que los registros se estén borrando con TRUNCATE TABLE.

Si no se da ninguna de esas circunstancias, entonces no debería ocurrir.

Ten presente que cuando usas un campo AUTO_INCREMENT, no debe incluirse ningún valor cunado se hace la inserción, y en el INSERT INTO Tabla(.., deben ponerse todos los campos que se están insertando. Sólo así el AUTO_INCREMENT funcionará bien.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 08/03/2009, 16:00
 
Fecha de Ingreso: abril-2007
Mensajes: 46
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: duda con tipo de dato auto_increment

Hola amigo , todas las observaciones que has hecho ya las chequie ... el caso es con el engine de mysam funciona tal y como lo hace el ms sql ¨nunca reutiliza el indice aunque haya sido borrado¨ pero si utiliza el engine innodb si vuelve a reutilizar esa id ...

Alguien que le haya sucedido algo paraecido por favor necesito ayuda

Saludos Antares
  #4 (permalink)  
Antiguo 08/03/2009, 17:54
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: duda con tipo de dato auto_increment

Los motores MyISAM ye InnoDB tienen comportamientos disímiles en cuanto a los AUTO_INCREMENT. Esos detalles se aclaran fácilmente cuando consultas el manual de referncia (3.6.9. Utilización de AUTO_INCREMENT)
Además de ello, debes leer:
14.1. El motor de almacenamiento MyISAM donde dice:
Cita:
El tratamiento interno de una columna AUTO_INCREMENT por tabla. MyISAM actualiza automáticamente esta colunmna para operaciones INSERT y UPDATE . Esto hace las columnas AUTO_INCREMENT más rápidas (al menos 10%). Los valores iniciales de la secuencia no se reúsan tras ser borrados. (Cuando una columna AUTO_INCREMENT se define como la última columna de un índice de varias columnas, se reúsan los valores borrados iniciales de la secuencia.) El valor AUTO_INCREMENT puede cambiarse con ALTER TABLE
15.6.3. Cómo funciona una columna AUTO_INCREMENT en InnoDB
En esencia, una de las cosas que notarás es que comprender la diferencia de comportamiento entre los tipos de tabla es fundamental antes de realizar la elección de tipo de tabla. De lo contrario los resultados pueden no ser los esperables.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:46.