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

Llaves foraneas (FK) es posible actualizarlas sin actualizar la clave primaria?

Estas en el tema de Llaves foraneas (FK) es posible actualizarlas sin actualizar la clave primaria? en el foro de Mysql en Foros del Web. Hola! Buenas noches desde Venezuela! Tengo una duda y despues de tanto leer y buscar en internet no consigo una forma o una respuesta... El ...
  #1 (permalink)  
Antiguo 28/01/2012, 21:22
Avatar de franblack  
Fecha de Ingreso: noviembre-2008
Ubicación: Caracas
Mensajes: 25
Antigüedad: 16 años, 1 mes
Puntos: 0
Pregunta Llaves foraneas (FK) es posible actualizarlas sin actualizar la clave primaria?

Hola!
Buenas noches desde Venezuela!

Tengo una duda y despues de tanto leer y buscar en internet no consigo una forma o una respuesta...

El caso es que tengo 3 tablas... pais, estado, ciudad; cada una de ellas con una clave primaria.. ejemplo:

id pais
1...Venezuela
2...Argentina
3...Colombia
4...Brasil

id...estado...id_pais (fk)
1...DC...1
2...Zulia...1
4...Buenos Aires...2
5...Mendoza...2
7...Medellin...3
8...Cucuta...3
9...Sao Paulo...4
10...Rio de Janeiro...4


id...ciudad...id_ciudad
1...Ciudad 1 DC...1
2...Ciudad 2 DC...1
3...Ciudad 1 Zulia...2
4...Ciudad 2 Zulia...2
5...Cuidad 1 Buenos Aires...4
6...Ciudad 2 Buenos Aires...4
7...Ciudad 1 Mendoza...5
8...Ciudad 2 Mendoza...6
9...Ciudad 1 Medellin...7
10...Ciudad 2 Medellin...7


Estoy utilizando estas tablas para incorporar esta informacion a otra tabla CLIENTES... cuyos campos principales son:

IDCLiente
Nombre Cliente
Pais
Estado
Ciudad
Direccion

Esto lo hago con la finalidad de tener mayor control sobre la base de datos y evitar que existan 2 paises o estados/ciudades debido a que el usuario final escriba o digite erroneamente un pais/estado/ciudad, ejemplo: Buenos Aires y Bs As. En este caso tendria 2 registros repetidos en base de datos indicando el mismo lugar...

Al hacer un INSERT todo me trabaja a la perfeccion, inclusive al momento de buscar la información de la base de datos y mostrarla en el formulario...

Perooo.. tengo un gran problema, al momento de querer editar el campo ciudad dentro de la tabla cliente, me da el error de :

Cannot add or update a child row: a foreign key constraint fails


Mi pregunta es: Es posbible actualizar el valor de una llave foranea sin alterar la llave primaria?

Pues de despues de tanto leer pude comprender que las acciones de UPDATE CASCADE y DELETE CASCADE solo ocurren cuando se modifica el valor de la llave primaria y consecuentemente se AcTUALIZA o BORRA automaticamente el valor de las llaves foraneas....

He leido y he implementado en mi instruccion de php, lo siguiente:

SET FOREIGN_KEY_CHECKS = 0; --- que es desabilitar el chequeo de las llaves foraneas

luego ejecuto mi instruccion de UPDATE y luego de...

SET FOREIGN_KEY_CHECKS = 1; retorno a su estado orignal..

------- Realizando esto ultimo, me ingresa valores en la tabla, los puedo ver a traves de mysqlworkbench, pero a traves de mi pagina php no me muestra el registro -----

Agradezco desde ya, si alguien conociera alguna manera, si es que la hay, no pido que me coloquen el codigo ya hecho si es que lo hay, he leido bastante pero no ubico o no doy con la manera de actualizar una llave foranea, y que lo que pretendo hacer funcione...

Muchas gracias desde ya,

Por leer y Por su Tiempo!
  #2 (permalink)  
Antiguo 29/01/2012, 13:49
Avatar de franblack  
Fecha de Ingreso: noviembre-2008
Ubicación: Caracas
Mensajes: 25
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Llaves foraneas (FK) es posible actualizarlas sin actualizar la clave prim

A todos aquellos que leyeron mi pregunta o tema... solo queria comentarles que:

Yaaaaaaaa Loooooooooooo Resolvii!!!!!!!!!

tenia un error en el <option select><option> que 'cargaba mi info desde la tabla de pais!!! tenia escrito erroneamente el valor de la variable!

Tenia semanas dandome de cabeza contra la mesa! pero ya lo resolviiii!!!!



gracias de todas maneras.... en la madrugada coloque el tema y de verdad no me podia quedar con esa!!! estuve dandole vuelta y vuelta al codigo hasta hace unos minutos que fue cuando me pude dar de cuenta que tenia el error en el codigo html-php!

gracias, gracias... esto me servira por si alguien coloca en algun momento alguna pregunta en el foro.. poder ayudarle... !!!!!

Etiquetas: campos, clave, llaves, php, posible, registros, tabla, foreignkey
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 09:08.