Как искать имя столбца - Postgresql БД - Новый - PullRequest
0 голосов
/ 12 февраля 2020

Я использую postgresql дБ для openproject. Я добавил два пользовательских столбца на веб-страницу интерфейса ie. Фактическая дата начала и фактическая дата окончания. Мне нужно записать начало и конец фактических дат для проекта. Я не знаю, в какой таблице были созданы оба столбца и где хранятся записи. В моей базе данных 110 таблиц, и мне очень трудно искать каждую таблицу одну за другой. Не могли бы вы помочь и дать мне запрос, чтобы найти оба столбца. Заранее спасибо.

я запустил следующее

Это дает вам имя схемы, а также имя таблицы указанного c столбца.

select t.table_schema,
       t.table_name,
       c.column_name  from information_schema.tables t inner join information_schema.columns c on c.table_name = t.table_name 
                                and c.table_schema = t.table_schema where c.column_name = 'column_name'
      and t.table_schema not in ('information_schema', 'pg_catalog')
      and t.table_type = 'BASE TABLE' order by t.table_schema;

Где очевидно, 'column_name' - это имя, которое вы должны передать для столбца. Я запустил следующий запрос.

select t.table_schema,
       t.table_name from information_schema.tables t inner join information_schema.columns c on c.table_name = t.table_name 
                                and c.table_schema = t.table_schema where c.column_name = '%actual%start%date%'
      and t.table_schema not in ('information_schema', 'pg_catalog')
      and t.table_type = 'BASE TABLE' order by t.table_schema;

Но я не получил ответа из базы данных.

1 Ответ

1 голос
/ 12 февраля 2020

Вы использовали подстановочный знак с оператором равенства (=):

c.column_name = '%actual%start%date%'

Используйте вместо этого:

c.column_name like '%actual%start%date%'
...