Je crée une table dans Redshift. Lorsque j'ai essayé de rechercher la définition de la table, je récupère les résultats de information_schema.columns
en exécutant la requête suivante:
select * from information_schema.columns
where table_name = 'table' and table_schema='schema'
Cependant, lorsque j'exécute une requête sur pg_catalog.pg_table_def
, Je ne récupère aucun résultat.
select * from pg_catalog.pg_table_def
where tablename = 'table' and schemaname = 'schema'
Quelqu'un pourrait-il m'aider à comprendre pourquoi cela se produit? La table est créée et appartient au compte que j'utilise.
Vérifier show search_path;
pour vous assurer que vous êtes sur le chemin actuel où la table a été créée. Comme indiqué sur le redshift AWS d'origine documentation .
PG_TABLE_DEF ne renvoie que des informations sur les tables visibles par l'utilisateur.
pour obtenir ce que vous voulez, vous devez exécuter
set search_path to '$user', '<#your_schema#>'; select * from pg_catalog.pg_table_def where tablename = '<#your_table#>';
J'espère que cela pourra aider.