У меня есть схемы с около 3000 таблиц в PostgreSQL БД, все они имеют один ряд с колонками:PostgreSQL - Выбор таблиц, где определенный столбец нет
id
, area
, use
, geom
, site_id
Однако я только что обнаружил, что есть хотя бы одна таблица, которая пропускает столбец site_id
. Мне интересно, если их больше ... Как я могу запросить таблицы, не имеющие столбца site_id
?
Моя следующая идея не работает. Какие-либо предложения?
SELECT table_name
FROM information_schema.columns
WHERE table_schema = 'schema_A' AND column_name NOT LIKE 'site_id'
GROUP BY table_name;
Я предполагаю, что это было предназначено, чтобы точно сравнить имя столбца с литеральным 'site_id' ... – Dilettant
@andrasz: Нет фильтров предложения HAVING, вы получаете имена таблиц в соответствии с списком SELECT. Просто попробуйте - я сделал ;-) (комментарий OP был удален) – Dilettant
@ Dilettant: Да, вы были правы: я просто искал «site_id», и да, это работает. Все мои описанные (и теперь удаленные) сомнения исчезли после того, как они пробовали код;) Спасибо, мистер Ллама! – andrasz