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.
Vamos ao comando?
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
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