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

Cambiar tipo de campo

Estas en el tema de Cambiar tipo de campo en el foro de Mysql en Foros del Web. Estimados usuarios de foros del web tengo un problema con una base de datos hecha en mysql 5.1, la situacion es la siguiente: tengo una ...
  #1 (permalink)  
Antiguo 01/05/2008, 19:06
 
Fecha de Ingreso: abril-2008
Mensajes: 51
Antigüedad: 16 años
Puntos: 0
Exclamación Cambiar tipo de campo

Estimados usuarios de foros del web tengo un problema con una base de datos hecha en mysql 5.1, la situacion es la siguiente: tengo una tabla nivel con los campos idnivel y nivel, la llave primaria es idnivel y esta declarada como varchar, tengo otra tabla grados en donde tengo idnivel como llave foranea tambien declarada como varchar, el asunto es que ahora necesito cambiar mi tipo de dato en cuanto al campo idnivel ya no necesito que sea varchar sino que sea integer, a la hora de que entro a mysql y le doy en editar tabla al realizar el cambio me da un error y no puedo realizar el mismo. Por favor necesito ayuda para resolver mi problema de antemano muy agradecido por sus comentarios y ayuda que me pueda brindar............
  #2 (permalink)  
Antiguo 01/05/2008, 19:24
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
Re: Cambiar tipo de campo

Cancelale la referencia a la segunda tabla. Mientras la referencia exista, no podrás hacer la modificación.
Luego se la puedes volver a poner.
__________________
¿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 01/05/2008, 22:51
 
Fecha de Ingreso: abril-2008
Mensajes: 51
Antigüedad: 16 años
Puntos: 0
Re: Cambiar tipo de campo

Seguen entiendo debo borrar la referencia en la tabla grados, pero soy novato en esto y no me queda muy claro como hacer este procedimiento, he probado ingresando a la tabla grados y trato de eliminar el campo idnivel que esta alli pero me da error, luego he intentado modificar los datos que me despliega en lo que es la llave foranea (del campo idnivel en la tabla grados) pero no se a que tabla referenciar el idnivel que tengo en grados. Entiendo que si hago la referencia de la llave foranea de idnivel en la tabla grados a otra tabla podre cambiar el tipo de dato del campo idnivel en la tabla nivel pero no me funciona el redireccionamiento de la referencia o no lo estoy haciendo bien, por favor me podrias aclarar un poco mas el tema.
  #4 (permalink)  
Antiguo 02/05/2008, 07:53
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Re: Cambiar tipo de campo

Mira este enlace, en el que podrás ver cómo deshabilitar esa relación en la tabla donde tengas el Foreign Key:

http://www.programacion.com/bbdd/tut...referencial/6/

pero no lo pongas a prueba hasta que no te digan cómo volver a restablecer la relación...

Última edición por jurena; 02/05/2008 a las 09:08
  #5 (permalink)  
Antiguo 02/05/2008, 19:00
 
Fecha de Ingreso: abril-2008
Mensajes: 51
Antigüedad: 16 años
Puntos: 0
Re: Cambiar tipo de campo

Gracias por el link lo consultaré para solucionar mi problema............
  #6 (permalink)  
Antiguo 09/05/2008, 22:26
 
Fecha de Ingreso: abril-2008
Mensajes: 51
Antigüedad: 16 años
Puntos: 0
Re: Cambiar tipo de campo

Para los usuarios que utilizamos el mysql en su mayor parte en el ambiente gráfico, lo ke hay ke hacer es lo suiguiente:

Nos vamos a la tabla en donde es una llave foranea el campo que deseamos cambiar de tipo(seleccionamos el campo), luego en la parte de abajo de la pantalla nos aparecen unos datos de la tabla como lo es las PK y las FK, nos posicionamos en la pestaña de llaves foranes y seleccionamos nuestra fk y le damos al botoncito de menos, con esto hemos borrado la referencia a la tabla en donde el capo es PK.

Luego nos vamos a la tabla en donde el campo a cambiarle tipo es PK y lo seleccionamos, repetimos la operacion del paso anterior con unas variantes aca ya no nos posicionamos en la pestaña de llaves foranes sino en la de llaves primarias, seleccionamos el campo que queremos modificar y borrarmos con el signo de menos la referencia que dice que es primary key, luego ya podemos cambiar el tipo de campo en mi caso era varchar y lo cambie a integer, le borramos el cheque de not null y otro que esta a la par y luego le damos execute a nuestra tabla y listo estara creada la nueva referencia con el tipo de campo ya cambiado, luego nos vamos a la tabla en donde el campo es llave foranea y repetimos el proceso y listo ya quedo nuestra base de datos............(si les borrara la llavecita que dice ke es primay key el campo solo lo volvemos a crear y listo)
  #7 (permalink)  
Antiguo 01/09/2008, 18:50
CiS
 
Fecha de Ingreso: abril-2002
Mensajes: 71
Antigüedad: 22 años
Puntos: 0
Respuesta: Cambiar tipo de campo

Hola!
También podrías haber deshabilitado las foreign keys usando:
SET FOREIGN_KEY_CHECKS = 0;

haces los cambios necesarios en tu tabla (incluso puedes dropearla y volverla a crear) y luego levantas otra vez las restricciones usando:
SET FOREIGN_KEY_CHECKS = 1;

Más que nada para evitar que al borrar una fk luego olvides volver a crearla... no es mejor?

Saludos!
CiS
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 12:16.