Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Averiguar La Estructura De Una Tabla.
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Averiguar La Estructura De Una Tabla. 
 
Necesito saber qué claves externas tiene una tabla. Para averiguarlo dispongo, en mysql de la consulta show create table ..., pero la aplicación también usa bases de SQLITE. El sistema usando shell es engorroso, por cuanto hay que generar un script que genere un fichero de texto que luego se analiza, etc. etc..

La pregunta es ¿Es posible averiguar las claves foráneas de una tabla con gambas puro y duro, sin recurrir a herramientas de terceros?

Gracias por las respuestas... si las hay.
 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Averiguar La Estructura De Una Tabla. 
 
Hola

todo depende de tu implementacion.

si usas vectores pra crear las tablas entonces podras saber cualquier cosa de ellas en tiempo de ejecución y en cualquier módulo..
 



 
Ronny - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Averiguar La Estructura De Una Tabla. 
 
No quiero crearlas, quiero averiguar su relación con las demás de la base de datos. Estoy modificando mi programa SIESTA (http://foro.gambas-es.org/viewtopic.php?f=5&t=1515, que maneja bases de SQLITE, mysql y PostreSQL. Hasta ahora sólo modifica tablas de SQLITE, por lo que me resulta insuficiente. Lo he modificado para que también modifique las tablas mysql, pero debe respetar la integridad referencial. Eso es fácil con mysql y, supongo, con postgreSQL (aún no lo he probado), pero me parece un follón el tener que escribir rutinas distintas para cada driver.
De ahí la pregunta ¿Se puede conocer la integridad referencial, es decir claves foráneas, índices primarios, etc. etc. sólo con gambas? Lo de la clave primaria es simple. Lo de las claves foráneas no lo tengo tan claro. Sé que cada tabla tiene una colección de indexes, pero no he encontrado información al respecto...
 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Averiguar La Estructura De Una Tabla. 
 
Hola shordi

Puedes usar los siguientes comandos mysql
describe tabla -> esto te da la estructura de la tabla.  Las primary key les pone PK y las foreign key les pone FK

show create tabla -> esto te dice con que otro campo/tabla se relaciona la anterior

Pero toda esa información la tienes que ir buscando en strings y en mysql tienes una posibilidad aún mejor que sirve para cualquier cosa.  Si miras en Information_schema allí tienes toda la información que buscas de forma que la puedas extraer con un select tal y como quieras y se hace mucho mas manejable.

Allí dentro tienes
tables -> la lista de tablas de la base de datos
columns -> lista de columnas de una tabla
constraints -> aquí hay un campo type que puede ser unique, primary key o foreign key
key_column_usage -> columnas con restricciones tanto por índices como foreign keys
routines -> lista de procedimientos almacenados
views -> lista de vistas
triggers -> lista de triggers

Es una información muy amplia, merece la pena que le eches un vistazo. Creo que aqui puedes encontrar a tu gusto toda la información que buscas filtrada, ordenada y clasificada como gustes

Enlace

Sé que también se puede hacer a traves de gb.mysql al menos parte pero yo creo que te compensa mirar bien lo anterior porque eso te resuelve todos los problemas que puedas tener a nivel de estructura de una base de datos mysql en cualquier caso. Allí está todo y para manejarlo tu es un simple objeto result.
 



 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Averiguar La Estructura De Una Tabla. 
 
Gracias soplo, con mysql lo tenía ya resuelto. Lo del information_schema es lo primero que me planteé aunque luego lo solucioné de otra manera porque no estaba muy seguro de que los usuarios restringidos que utilizo en las aplicaciones tengan acceso a esa tabla, lo que pasa es que no me gusta mucho el tener que programar las rutinas para cada driver. Si gambas tuviese dentro de las propiedades del objeto connection la solución... miel sobre hojuelas.
Tendré que seguir con lo de antes.
De nuevo gracias a todos.
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Averiguar La Estructura De Una Tabla. 
 
En una de las propiedades de un tipo fields de base de datos está la propiedad foreign keys. De esa forma podrías obtener la información que buscas por medio de gambas. No lo he usado nunca, solo lo he visto.

Enlace

Enlace
 



 
última edición por soplo el Sabado, 11 Junio 2011, 14:28; editado 1 vez 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Averiguar La Estructura De Una Tabla. 
 
mmmmm lo miraré, a bote pronto parece que es para la creación de tablas sólo. El lunes lo miro.
Gracias, soplo.
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Documentación Estructura Archivos De Proy... fabianfv General 2 Jueves, 02 Febrero 2012, 23:36 Ver último mensaje
fabianfv
No hay nuevos mensajes Ejemplo De Estructura Shell General 2 Jueves, 20 Junio 2013, 14:47 Ver último mensaje
jguardon
No hay nuevos mensajes Estructura De Un Proyecto Shell General 6 Miercoles, 22 Enero 2014, 23:15 Ver último mensaje
jsbsan
No hay nuevos mensajes Estructura Con Propiedades Persistentes! Shell General 4 Miercoles, 28 Febrero 2018, 15:49 Ver último mensaje
vuott
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron