Ver Mensaje Individual
  #6 (permalink)  
Antiguo 29/10/2007, 13:35
Avatar de hectorejch
hectorejch
 
Fecha de Ingreso: junio-2005
Ubicación: Argentina
Mensajes: 172
Antigüedad: 18 años, 11 meses
Puntos: 2
Re: campo aunto_increment

Hola natasha, te recomiendo que dejes ese campo como estaba al principio y NO LO hagas como PK, ya que no sería correcto hacer un campo PK solo para usarlo como AUTO-INCREMENT.
Por otro lado te propongo que cuando insertes un registro hagas un: SELECT MAX('ublista') FROM tabla. Esto te devuelve el número más alto de ese campo, al cual le sumas uno, y de esa forma "simulas" un auto-incremental, que en realidad sería la forma mas "correcta" para hacer en este caso.
Tambien te iba a decir que utilices esta consulta que te pase como una sub-consulta de tu INSERT, pero si no me equivoco, yo ya probe esto una vez, y MySQL no soporta un SELECT como sub-consulta de un INSERT.
Asi que bueno, espero que haya quedado un poco clara la idea, te lo resumo:
- Consultas el valor máximo de ese campo en la BD y lo traes a tu programa
- Le sumas uno (recomiendo que hagas la suma directamente en la consulta SQL: SELECT MAX('UBLISTA')+1 FROM tabla)
- Insertas tu registro nuevo en la BD pasandole para este campo ese valor.

Por otro lado me parece mejor trabajar de esta forma porque te permite tener un manejo de los "huecos" que pueden quedar al borrar algún registro. Suponete que tenes 10 registros, y borras el 4, tu tabla va a quedar con el "hueco" del 4, ya que con un AUTO-INCREMENT va a seguir a partir del 11.

Espero haber explicado bien :D Saludos
__________________
"El Reino de Dios no consiste en palabras, sino en poder"