Retroceder   Foros del Web > Programación para sitios web > Bases de Datos > Mysql

Respuesta
 
Herramientas Desplegado
Antiguo 22-jul-2008, 21:10   #1 (permalink)
fhonorato no se puede cailificar en este momento
 
Fecha de Ingreso: julio-2008
Ubicación: Talca, Chile
Mensajes: 33
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
fhonorato está desconectado   Responder Citando
Antiguo 23-jul-2008, 00:43   #2 (permalink)
quimfv tiene algunos puntos positivos de karma
 
Fecha de Ingreso: marzo-2008
Mensajes: 442
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
quimfv está desconectado   Responder Citando
Antiguo 23-jul-2008, 08:10   #3 (permalink)
fhonorato no se puede cailificar en este momento
 
Fecha de Ingreso: julio-2008
Ubicación: Talca, Chile
Mensajes: 33
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..
fhonorato está desconectado   Responder Citando
Antiguo 23-jul-2008, 09:51   #4 (permalink)
Genetix tiene algunos puntos positivos de karma
 
Avatar de Genetix
 
Fecha de Ingreso: noviembre-2002
Ubicación: LP
Mensajes: 997
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."
blog personal http://codigolinea.com
Genetix está desconectado   Responder Citando
Antiguo 23-jul-2008, 10:08   #5 (permalink)
fhonorato no se puede cailificar en este momento
 
Fecha de Ingreso: julio-2008
Ubicación: Talca, Chile
Mensajes: 33
Respuesta: Obtener la referencia o el foreign de una tabla

no me devuelve nada :S
fhonorato está desconectado   Responder Citando
Antiguo 23-jul-2008, 10:16   #6 (permalink)
Genetix tiene algunos puntos positivos de karma
 
Avatar de Genetix
 
Fecha de Ingreso: noviembre-2002
Ubicación: LP
Mensajes: 997
Respuesta: Obtener la referencia o el foreign de una tabla

Al parecer solo funciona con tablas InnoDb
__________________
"El conocimiento nos hace responsables."
blog personal http://codigolinea.com
Genetix está desconectado   Responder Citando
Antiguo 23-jul-2008, 11:14   #7 (permalink)
fhonorato no se puede cailificar en este momento
 
Fecha de Ingreso: julio-2008
Ubicación: Talca, Chile
Mensajes: 33
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
fhonorato está desconectado   Responder Citando
Antiguo 23-jul-2008, 11:26   #8 (permalink)
Genetix tiene algunos puntos positivos de karma
 
Avatar de Genetix
 
Fecha de Ingreso: noviembre-2002
Ubicación: LP
Mensajes: 997
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."
blog personal http://codigolinea.com
Genetix está desconectado   Responder Citando
Antiguo 23-jul-2008, 11:42   #9 (permalink)
quimfv tiene algunos puntos positivos de karma
 
Fecha de Ingreso: marzo-2008
Mensajes: 442
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
quimfv está desconectado   Responder Citando
Antiguo 23-jul-2008, 12:47   #10 (permalink)
fhonorato no se puede cailificar en este momento
 
Fecha de Ingreso: julio-2008
Ubicación: Talca, Chile
Mensajes: 33
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
fhonorato está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 04:12.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93