terça-feira, 11 de agosto de 2015

Listando as Colunas de uma Tabela no PostgreSQL

Olá, Bom Dia Galera!!!

Vamos ver os comandos para listar todas as colunas de uma tabela no postgreSQL, identificando as chaves primárias, as chaves estrangeiras, o tipo de dado, tamanho do campo, bem como se ele aceita nulo ou não.

Tendo em mãos o nome do Schema e o nome da tabela desejada, basta executar o comando abaixo:

Vamos ao comando?
SELECT A.attname || '(' ||
       CASE WHEN ((SELECT COUNT(1)
                   FROM pg_index AA
                   WHERE AA.indrelid = B.oid
                     AND AA.indkey[0] = A.attnum) > 0)
       THEN 'PK, ' ELSE '' END ||
       CASE WHEN ((SELECT COUNT(1)
                   FROM pg_constraint BB
                   WHERE BB.conrelid = A.attrelid
                     AND BB.conkey[1] = A.attnum
                     AND BB.confrelid <> 0) > 0)
       THEN 'FK, ' ELSE '' END ||
       format_type(A.atttypid, A.atttypmod) || ', ' ||
       CASE WHEN A.attnotnull = 't' 
       THEN 'Não Nulo' ELSE 'Nulo' END ||
       ')' AS Coluna
FROM pg_attribute A 
LEFT JOIN pg_class B ON A.attrelid = B.oid
LEFT JOIN pg_namespace C ON B.relnamespace = C.oid
LEFT JOIN pg_type D ON A.atttypid = D.oid
WHERE A.attnum > 0
  AND C.nspname = 'public' --Nome do Schema
  AND B.relname = 'pessoa' --Nome da Talela



Prontinho, aí estão todas as colunas com as devidas informações de tamanho, tipo de dado, etc.

Se você tem uma dica interessante, preencha o Formulário de contato do lado direito da página e nos envie.

Atenciosamente
Dica Chave.

Nenhum comentário:

Postar um comentário