Tabelas de sistema
Bom dia,
Preciso criar um programa que mostre na tela, quais são as tabelas com seus respectivos campos já criados no banco de dados. Me disseram que para isso eu preciso consultar as tabelas de sistema do Postgre.
Esta informação está correta? Existe algum MER com essas tabelas na documentação do Postgre?
Agradeço desde já,
Keidy Marcelo
Preciso criar um programa que mostre na tela, quais são as tabelas com seus respectivos campos já criados no banco de dados. Me disseram que para isso eu preciso consultar as tabelas de sistema do Postgre.
Esta informação está correta? Existe algum MER com essas tabelas na documentação do Postgre?
Agradeço desde já,
Keidy Marcelo
Keidysakamoto
Curtidas 0
Respostas
Keidysakamoto
23/09/2005
descobri que no oracle o comando é
-- RETORNA AS TABELAS
SELECT TABLE_NAME FROM USER_TABLES
-- RETORNA OS CAMPOS
DESC <NOME DA TABELA>
Alguém sabe de algo semelhante no postgre?
-- RETORNA AS TABELAS
SELECT TABLE_NAME FROM USER_TABLES
-- RETORNA OS CAMPOS
DESC <NOME DA TABELA>
Alguém sabe de algo semelhante no postgre?
GOSTEI 0
Keidysakamoto
23/09/2005
achei o comando que retorna as tabelas:
select table_name from pg_tables;
Agora só falta o que me retorna os campos
select table_name from pg_tables;
Agora só falta o que me retorna os campos
GOSTEI 0
Keidysakamoto
23/09/2005
ainda não decifrei, mas funciona:
Esse retorna os campos:
SELECT pg_attribute.attnum AS index,
attname AS field,
typname AS type,
atttypmod-4 as length,
NOT attnotnull AS ´null´,
adsrc AS def
FROM pg_attribute,
pg_class,
pg_type,
pg_attrdef
WHERE pg_class.oid=attrelid
AND pg_type.oid=atttypid
AND attnum>0
AND pg_class.oid=adrelid
AND adnum=attnum
AND atthasdef=´t´
AND lower(relname)=´tab1´
UNION
SELECT pg_attribute.attnum AS index,
attname AS field,
typname AS type,
atttypmod-4 as length,
NOT attnotnull AS ´null´,
´´ AS def
FROM pg_attribute,
pg_class,
pg_type
WHERE pg_class.oid=attrelid
AND pg_type.oid=atttypid
AND attnum>0
AND atthasdef=´f´
AND lower(relname)= <NOME DA TABELA> ;
Esse retorna os campos:
SELECT pg_attribute.attnum AS index,
attname AS field,
typname AS type,
atttypmod-4 as length,
NOT attnotnull AS ´null´,
adsrc AS def
FROM pg_attribute,
pg_class,
pg_type,
pg_attrdef
WHERE pg_class.oid=attrelid
AND pg_type.oid=atttypid
AND attnum>0
AND pg_class.oid=adrelid
AND adnum=attnum
AND atthasdef=´t´
AND lower(relname)=´tab1´
UNION
SELECT pg_attribute.attnum AS index,
attname AS field,
typname AS type,
atttypmod-4 as length,
NOT attnotnull AS ´null´,
´´ AS def
FROM pg_attribute,
pg_class,
pg_type
WHERE pg_class.oid=attrelid
AND pg_type.oid=atttypid
AND attnum>0
AND atthasdef=´f´
AND lower(relname)= <NOME DA TABELA> ;
GOSTEI 0