[firebase-br] DDL

Sandro Souza escovadordebits em gmail.com
Qua Abr 8 17:14:23 -03 2009


Bom dia/tarde Alexandre.

Assim como a grande maioria dos SGBDs, o Firebird também tem "tabelas de
sistema", que servem justamente para que você possa recuperar as informações
de metadados, como os nomes das tabelas já existentes, seus respectivos
campos, etc...

Pesquise pelas tabelas que começam com RDB$, como RDB$RELATIONS (tabelas),
RDB$RELATION_FIELDS (campos), RDB$RELATION_CONSTRAINTS (chaves, regras,
etc..), etc...

Por exemplo, para obter os nomes das tabelas, que não são de sistema,
existentes no banco de dados, utilize o seguinte código:

SELECT RDB$RELATION_NAME AS TABELA
FROM RDB$RELATIONS
WHERE RDB$SYSTEM_FLAG <> 1
ORDER BY 1;

Para obter os nomes dos campos que existem em uma determinada tabela,
utilize o seguinte código:

SELECT RDB$FIELD_NAME
FROM RDB$RELATION_FIELDS
WHERE RDB$RELATION_NAME = 'NomeDaTabela'
ORDER BY RDB$FIELD_POSITION;

Não vou colocar aqui o mapa completo da mina porque seriam quilos de texto,
mas espero que isso já sirva de pista inicial para que você pesquise mais e
encontre o que você deseja.

Espero ter ajudado mais que atrapalhado.

2009/4/8 Alexandre Gonçalves <info em cacula.ind.br>

> Bom dia, lista!
>
> Gostaria de saber, se existe algum comando SQL, onde eu consiga recuperar o
> metadata ou DDL de uma única tabela que eu escolher?
>
> Obrigado.
>
> Alexandre Gonçalves
> Dracena - SP
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista