Как проверить, существует ли таблица в данной схеме
Базы данных Postgres 8.4 и выше содержат общие таблицы вpublic
Схема и таблицы для конкретной компании вcompany
схемы.company
имена схем всегда начинаются с'company'
и заканчивается номером компании.
Так что могут быть схемы вроде:
public
company1
company2
company3
...
companynn
Приложение всегда работает с одной компанией.search_path
определяется соответственно в строке подключения odbc или npgsql, например:
search_path='company3,public'
Как бы вы проверили, существует ли данная таблица в указанномcompanyn
схема?
например:
select isSpecific('company3','tablenotincompany3schema')
должен вернутьсяfalse
, а также
select isSpecific('company3','tableincompany3schema')
должен вернуться.true
В любом случае, функция должна проверять толькоcompanyn
Схема пройдена, а не другие схемы.
Если данная таблица существует в обоихpublic
и переданную схему, функция должна вернуться.true
Это должно работать для Postgres 8.4 или новее.