Foros del Web » Programando para Internet » PHP »

Cambiar valor de una clave primaria

Estas en el tema de Cambiar valor de una clave primaria en el foro de PHP en Foros del Web. Hola, estoy utilizando una base de datos MySQL, tengo un campo (pirmario) auto_increment, donde cada vez que se añade un registro se crea un nuevo ...
  #1 (permalink)  
Antiguo 21/04/2008, 07:25
Avatar de EnCeRiO  
Fecha de Ingreso: septiembre-2004
Mensajes: 375
Antigüedad: 19 años, 7 meses
Puntos: 0
Cambiar valor de una clave primaria

Hola, estoy utilizando una base de datos MySQL, tengo un campo (pirmario) auto_increment, donde cada vez que se añade un registro se crea un nuevo valor: 1,2,3,4,5.....

Teniendo unos 500 registros puedo cambiar el valor de este campo, es decir, el 125 por el 250 por ejemplo, con php???

Es que desde el phpmyadmin no me deja, tengo que ponerle al 125 el próximo valor del auto_increment, luego al 250 ponerle el 125 y por último al valor que le puse al 125 ponerle el 250... es decir, un rollo.


Gracias
Saludos
__________________
Médicos Sin Fronteras
Casi todos sabemos a qué se dedican, pero no sabemos lo fácil que es hacerse socio, ¿te sobran 10 €/mes?
  #2 (permalink)  
Antiguo 21/04/2008, 09:45
Avatar de .php  
Fecha de Ingreso: julio-2006
Mensajes: 481
Antigüedad: 17 años, 9 meses
Puntos: 5
Re: Cambiar valor de una clave primaria

no entendi mucho el enredo, pero tienes las siguentes alternativas
desde el mimo php colocale el id, primero haces una sql que te muestre el max() y le sumas uno.

lo otro desde el mismo phpmyadmin creas tu tabla asi:
Código:
CREATE TABLE `MI_TABLA` (                               
               `id` int(11) NOT NULL auto_increment,                    
               PRIMARY KEY  (`id`)                                      
             ) ENGINE=MyISAM AUTO_INCREMENT=125 DEFAULT CHARSET=latin1
__________________
~~[FiDeLio]~~
  #3 (permalink)  
Antiguo 21/04/2008, 13:04
Avatar de EnCeRiO  
Fecha de Ingreso: septiembre-2004
Mensajes: 375
Antigüedad: 19 años, 7 meses
Puntos: 0
Re: Cambiar valor de una clave primaria

Creo que no se me entendió.

Tengo lo siguiente:
id - nombre - telefono
---------------------
1 - Jose - 555111555
2 - Juan - 555222555
3 - Javi - 555888555

El id es la clave primaria, quiero cambiar por ejemplo el id 1 por el 3 y que me quede así:
id - nombre - telefono
---------------------
3 - Jose - 555111555
2 - Juan - 555222555
1 - Javi - 555888555

Ahora se me entiende???

Saludos y gracias
__________________
Médicos Sin Fronteras
Casi todos sabemos a qué se dedican, pero no sabemos lo fácil que es hacerse socio, ¿te sobran 10 €/mes?
  #4 (permalink)  
Antiguo 21/04/2008, 13:18
 
Fecha de Ingreso: enero-2008
Mensajes: 163
Antigüedad: 16 años, 3 meses
Puntos: 2
Re: Cambiar valor de una clave primaria

si pero la unica manera q lo veo es de la siguiente
le tendrias que dar
Cita:
update nombretabla set id=4 where id=1;
update nombretabla set id=1 where id=3;
update nombretabla set id=3 where id=4;
  #5 (permalink)  
Antiguo 21/04/2008, 15:31
Avatar de EnCeRiO  
Fecha de Ingreso: septiembre-2004
Mensajes: 375
Antigüedad: 19 años, 7 meses
Puntos: 0
Re: Cambiar valor de una clave primaria

Cita:
Iniciado por bleckfala Ver Mensaje
si pero la unica manera q lo veo es de la siguiente
le tendrias que dar
Código:
update nombretabla set id=4 where id=1;
update nombretabla set id=1 where id=3;
update nombretabla set id=3 where id=4;
Así sería hacerlo como lo hago en PHPMyAdmin...

Gracias de todas formas

Saludos
__________________
Médicos Sin Fronteras
Casi todos sabemos a qué se dedican, pero no sabemos lo fácil que es hacerse socio, ¿te sobran 10 €/mes?
  #6 (permalink)  
Antiguo 08/11/2008, 13:57
 
Fecha de Ingreso: febrero-2008
Mensajes: 2
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Re: Cambiar valor de una clave primaria

Cita:
Iniciado por EnCeRiO Ver Mensaje
Así sería hacerlo como lo hago en PHPMyAdmin...

Gracias de todas formas

Saludos
Mira las claves primarias con autoincrement son unicas. No existe una sentencia que le intercambie automaticamente. pero si se puede crear una funcion llamada cambiar_id. que basicamente consiste en hacer swap. Asique creo que le estas buscando el pelo al huevo.
  #7 (permalink)  
Antiguo 08/11/2008, 14:56
Avatar de Deschamps  
Fecha de Ingreso: octubre-2008
Mensajes: 257
Antigüedad: 15 años, 6 meses
Puntos: 8
Respuesta: Cambiar valor de una clave primaria

Claro ejemplo del dicho "Si Mahoma no va a la montaña...": ¿Por qué no intercambias el resto de datos de esos dos registros dejando los ID tal cual?

Un saludo.
  #8 (permalink)  
Antiguo 08/11/2008, 15:27
Avatar de Batusai  
Fecha de Ingreso: enero-2005
Ubicación: Málaga -Andalucía- España
Mensajes: 130
Antigüedad: 19 años, 3 meses
Puntos: 1
Respuesta: Cambiar valor de una clave primaria

Si ese ID es usado como clave ajena en alguna otra tabla tendrías un problema de incongruencia. ¿Has pensado en esa posibilidad? No vaya a ser que la líes.
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 19:03.