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

campo aunto_increment

Estas en el tema de campo aunto_increment en el foro de Mysql en Foros del Web. cree varios campos y entre ellos ..cree campo que se llama UBLISTA....lo coloque com entero....pero despues mejor quise cambiarlo a auto_increment para que aparesca un ...
  #1 (permalink)  
Antiguo 26/10/2007, 13:52
 
Fecha de Ingreso: mayo-2007
Mensajes: 413
Antigüedad: 16 años, 11 meses
Puntos: 0
campo aunto_increment

cree varios campos y entre ellos ..cree campo que se llama UBLISTA....lo coloque com entero....pero despues mejor quise cambiarlo a auto_increment para que aparesca un numero correlativo a medida que se inserta un campo a la tabla...

pero al cambair me aparece este error yesta e mi pregunta porque aparece esto?


Error
SQL-query :

ALTER TABLE `SistemadePostulaciones`.`test_seleccion` CHANGE `UBLISTA` `UBLISTA` INT DEFAULT '0' NOT NULL AUTO_INCREMENT

MySQL ha dicho:


Incorrect table definition; There can only be one auto column and it must be defined as a key

----------------------------------------------------------
la tabla se llama test_seleccion y trabajo con un programa que se llama phptriad...que traer php, mysql ect....

agradeco la ayuda
__________________
Los que Saben....no Saben lo que Saben
  #2 (permalink)  
Antiguo 27/10/2007, 18:03
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
De acuerdo Re: campo aunto_increment

Hola natashca!! Cómo vas??

Pues ese error quiere decir que a un atributo normal no puedes darle el atributo autoincrementable!!! Eso solo se puede hacer con atributos que son llaves primarias PK.

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #3 (permalink)  
Antiguo 29/10/2007, 07:15
 
Fecha de Ingreso: mayo-2007
Mensajes: 413
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: campo aunto_increment

gracias.....pero como puedo solucionar esto..??


es que necesito ...crear un campo...el cual cuando a medida que vaya ingresando puntajes de alumnos ....se vaya incrementando este campo, como un numero correlativo...para poder ordenarlos despues....segun numero ingresado....segun nombre...etc..

gracias
__________________
Los que Saben....no Saben lo que Saben
  #4 (permalink)  
Antiguo 29/10/2007, 07:55
 
Fecha de Ingreso: octubre-2006
Ubicación: Xoxocotla, Morelos Mexico
Mensajes: 243
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: campo aunto_increment

Hola nat

Pues al momento de hacer el alter table, debes agregar la sentencia, clausula o como el llames

primary key (UBLISTA)

y con eso quedara definido tu campo auto_increment como primario.

Intenta y me dices si funciono va??
  #5 (permalink)  
Antiguo 29/10/2007, 13:02
 
Fecha de Ingreso: mayo-2007
Mensajes: 413
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: campo aunto_increment

ola gracias por responder.....si....sria la solucion pero ya tengo una campo como campo clave....podre colocar 2? tendrai k cambiar la primary key , pero si hago esto no afectara el resto de las tablas anteriores.....es que ay otras tablas que ya se han ingresado con datos....no se me puedes orientar? gracias
__________________
Los que Saben....no Saben lo que Saben
  #6 (permalink)  
Antiguo 29/10/2007, 13:35
Avatar de hectorejch  
Fecha de Ingreso: junio-2005
Ubicación: Argentina
Mensajes: 172
Antigüedad: 18 años, 10 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"
  #7 (permalink)  
Antiguo 29/10/2007, 14:33
 
Fecha de Ingreso: mayo-2007
Mensajes: 413
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: campo aunto_increment

ola gracias .....enendi lo que debo hacer...el problema es que ya tengo una consulta para mostrar datos en un formulario...(Un reporte)..podre realizar 2 consultas...?? y si se puede como realizarlo?..gracias....podrioas ayudarme nuevamante
__________________
Los que Saben....no Saben lo que Saben
  #8 (permalink)  
Antiguo 30/10/2007, 06:41
 
Fecha de Ingreso: mayo-2007
Mensajes: 413
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: campo aunto_increment

hola a todos......tengo la siguente duda:


realize lo que me dijo ....hectorejch y como resultado solo aparcen ceros....solamente ceros... la idea era que apareciera el atributo como un auto_increment..taL como decia hectorejch


bueno si algien sabe porque de esto ..se agradece
__________________
Los que Saben....no Saben lo que Saben
  #9 (permalink)  
Antiguo 30/10/2007, 12:07
Avatar de hectorejch  
Fecha de Ingreso: junio-2005
Ubicación: Argentina
Mensajes: 172
Antigüedad: 18 años, 10 meses
Puntos: 2
Re: campo aunto_increment

Cita:
Iniciado por natashca Ver Mensaje
ola gracias .....enendi lo que debo hacer...el problema es que ya tengo una consulta para mostrar datos en un formulario...(Un reporte)..podre realizar 2 consultas...?? y si se puede como realizarlo?..gracias....podrioas ayudarme nuevamante
Podes hacer la cantidad de consultas que quieras; si necesitas mantener los datos de otras consultas tenes que usar otros identificadores.
Te iba a poner un ejemplo pero no se en que lenguaje estas trabajando, con PHP?

Cita:
Iniciado por natashca Ver Mensaje
realize lo que me dijo ....hectorejch y como resultado solo aparcen ceros....solamente ceros... la idea era que apareciera el atributo como un auto_increment..taL como decia hectorejch
De que funciona tiene que funcionar, yo utilice esta forma en varios sistemas que desarrolle (un poco más avanzado lo hice el manejo para poder completar los espacios vacios), así que fijate si podés postear el script SQL de tus consultas, tanto cuando lees/insertas/modificas en esa tabla, y tambien tu codigo en el lenguaje que estas trabajando (por lo que veo me parece que con PHP).
(Agregame al mess y cualquier cosa te ayudo por ahi)

Espero que te pueda salir pronto
__________________
"El Reino de Dios no consiste en palabras, sino en poder"
  #10 (permalink)  
Antiguo 30/10/2007, 12:33
 
Fecha de Ingreso: mayo-2007
Mensajes: 413
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: campo aunto_increment

gracias.....por tu ayuda-...funciona.....el problema lo tenia yo ....estaba trabajando con varias bases de datos....y por eso... no me resultaba....

bueno gracias.... este es [email protected]

ay agregame al msn....para agregarte yo ..o dame tu correo ....muchas gracias....
__________________
Los que Saben....no Saben lo que Saben
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 15:42.