см. дополнительную функцию table_exists_v2 ().
проверить, существует ли столбец, я могу легко использовать что-то похожее на это:
SELECT attname FROM pg_attribute
WHERE attrelid = (SELECT oid FROM pg_class WHERE relname = 'YOURTABLENAME')
AND attname = 'YOURCOLUMNNAME';
Тем не менее, я сталкиваюсь с проблемами с
SELECT oid FROM pg_class WHERE relname = 'YOURTABLENAME'
Когда есть несколько таблиц с одинаковым именем, распределенных по разным схемам, он возвращает OID всех таблиц с таким именем. Как проверить, содержит ли таблица в определенной схеме столбец, который мне нужен? Я использую Postgres 8.2.