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

Obtener la referencia o el foreign de una tabla

Estas en el tema de Obtener la referencia o el foreign de una tabla en el foro de Mysql en Foros del Web. Hola, siempre leo soluciones y es la primera vez que no la encuentro ... creo :S bueno, al echo... la cosa es que necesito obtener ...
  #1 (permalink)  
Antiguo 22/07/2008, 21:10
Avatar de fhonorato  
Fecha de Ingreso: julio-2008
Ubicación: Talca, Chile
Mensajes: 36
Antigüedad: 15 años, 8 meses
Puntos: 1
Pregunta Obtener la referencia o el foreign de una tabla

Hola, siempre leo soluciones y es la primera vez que no la encuentro ... creo :S

bueno, al echo... la cosa es que necesito obtener de donde viene un campos...

por ejemplo ... existe la tabla padres e hijos... y en hijos un campo con la ID del padre, ok eso lo hago y todo...

pero necesito algun comando que me devuelva del mysql que hijos tiene un campo que hace refenrencia a padres ... se entiende? ... yo se en este caso, que hijos tiene referencia a padre o viceversa :S ... pero necesito saber cuando no lo se ^^ jojo que gracioso...

no se si exista algo como describe table .. o algo asi (describe no, muestra otro tipo de informacion) ... ahh! !! y con references tampoco.. poque no altera ninguna estructura de la tabla y si la altera nose como obtener esa info... yo creo que es por foreign keys .. pero nose como obtenerla (creo que eso ya lo he dicho mucho)

ok, gracias desde ya ... :D
  #2 (permalink)  
Antiguo 23/07/2008, 00:43
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Obtener la referencia o el foreign de una tabla

No se te entiende!!

El id padre de la tabla hijos debe ser una FK referenciada al id de la tabla padres, eso te impedirá entrar hijos relacionados a padres inexistentes, si además declaras NOT NULL el idpadre de la tabla hijos no podras entrar hijos sin padres...

en cuanto a listar los hijos con los nombres de los padres la consulta es sencilla

Select campos hijos, campos padres from hijos inner join padres on hijos.idpadre=padres.id;

Si no te explicas mejor no se si te he respondido....

Quim
  #3 (permalink)  
Antiguo 23/07/2008, 08:10
Avatar de fhonorato  
Fecha de Ingreso: julio-2008
Ubicación: Talca, Chile
Mensajes: 36
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Obtener la referencia o el foreign de una tabla

jeje, pues no .. mi duda no va por el tema de seleccion de la informacion de los datos o tuplas, sino de la informacion logica o fisica del campo ... por ejemplo cuando se hace un DESCRIBE ... necesito un comando "asi" para ver la foreing o references de una tabla a otras...


igual gracias quim por tu ayuda, pero es un poco mas profunda..
  #4 (permalink)  
Antiguo 23/07/2008, 09:51
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: Obtener la referencia o el foreign de una tabla

prueba con esto

Código:
SELECT  CONSTRAINT_NAME as constraint_name,
				    REFERENCED_TABLE_SCHEMA as fkschema,
				    TABLE_NAME as table_name,
				    COLUMN_NAME as column_name,
				    REFERENCED_TABLE_NAME as references_table,
				    REFERENCED_COLUMN_NAME as references_field,
				    concat("FOREIGN KEY") as constraint_type
				FROM

				    `INFORMATION_SCHEMA`.`KEY_COLUMN_USAGE`
				WHERE
				 	REFERENCED_TABLE_NAME IS NOT NULL
					AND TABLE_NAME = 'tu_tabla'
					AND TABLE_SCHEMA = 'tu_db';
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #5 (permalink)  
Antiguo 23/07/2008, 10:08
Avatar de fhonorato  
Fecha de Ingreso: julio-2008
Ubicación: Talca, Chile
Mensajes: 36
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Obtener la referencia o el foreign de una tabla

no me devuelve nada :S
  #6 (permalink)  
Antiguo 23/07/2008, 10:16
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: Obtener la referencia o el foreign de una tabla

Al parecer solo funciona con tablas InnoDb
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #7 (permalink)  
Antiguo 23/07/2008, 11:14
Avatar de fhonorato  
Fecha de Ingreso: julio-2008
Ubicación: Talca, Chile
Mensajes: 36
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Obtener la referencia o el foreign de una tabla

pues si la solucion creando una tabla de referencias.. quizas no es lo mas optimo en GENERAL pero para mi codigo me di cuenta que si lo es, asi me ahorro muchoooo tiempo, codigo y otras cosas.

en todo caso, si alguien tiene info o solucion bienvenida :D
  #8 (permalink)  
Antiguo 23/07/2008, 11:26
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: Obtener la referencia o el foreign de una tabla

Por que no conviertes tus tablas a InnoDb, asi te evitas de tener que crear tablas adicionales.
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #9 (permalink)  
Antiguo 23/07/2008, 11:42
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Obtener la referencia o el foreign de una tabla

Quiero ver que FK tengo definidas en mis tablas, como puedo verlo?

Código:
SELECT  CONSTRAINT_NAME as constraint_name,
				    REFERENCED_TABLE_SCHEMA as fkschema,
				    TABLE_NAME as table_name,
				    COLUMN_NAME as column_name,
				    REFERENCED_TABLE_NAME as references_table,
				    REFERENCED_COLUMN_NAME as references_field,
				    concat("FOREIGN KEY") as constraint_type
				FROM

				    `INFORMATION_SCHEMA`.`KEY_COLUMN_USAGE`
				WHERE
				 	REFERENCED_TABLE_NAME IS NOT NULL
					AND TABLE_NAME = 'tu_tabla_hija'
					AND TABLE_SCHEMA = 'tu_db';
En innoDB funciona a la perfección indica que campos de la tabla hija estan referenciados a que campos de la tabla padre.
A la inversa no da ningun resultado.

Siempre se aprenden cosas!!!

Quim
  #10 (permalink)  
Antiguo 23/07/2008, 12:47
Avatar de fhonorato  
Fecha de Ingreso: julio-2008
Ubicación: Talca, Chile
Mensajes: 36
Antigüedad: 15 años, 8 meses
Puntos: 1
Sonrisa Respuesta: Obtener la referencia o el foreign de una tabla

pues lo que dice genetiX :
Cita:
Iniciado por Genetix Ver Mensaje
Por que no conviertes tus tablas a InnoDb, asi te evitas de tener que crear tablas adicionales.
es cierto, pero me di cuenta que "lo que estoy haciendo" es mas util generar la tabla porque le doy una utilidad mayor... :D igual se agradece su ayuda :D
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 14:57.