| |||
![]() 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............ |
| |||
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. |
| |||
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 |
| |||
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) |
| |||
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 |