mysql / mariadb information_schema просмотреть время создания - PullRequest
0 голосов
/ 01 февраля 2019

Я хочу найти все таблицы и представления, созданные до определенной отметки времени.Для таблиц это просто, просто

SELECT * FROM information_schema.tables
WHERE table_type = 'TABLE' AND create_time < :ts

Но для представлений это не так просто.Столбец create_time равен нулю для всех представлений в information_chema.tables.например,

MariaDB [MYDB]> SELECT IF(create_time IS NULL, 'Null', 'Not Null') AS has_create_ts
                     , COUNT(1)
FROM information_schema.tables
WHERE table_type = 'VIEW' GROUP BY has_create_ts;
+---------------+----------+
| has_create_ts | COUNT(1) |
+---------------+----------+
| Null          |       70 |
+---------------+----------+
1 row in set, 10 warnings (0.371 sec)

А таблица information_schema.views не имеет столбцов меток времени.

Так как же узнать, когда было создано представление?Или это просто невозможно.

Если это имеет значение, версия базы данных:

MariaDB [MYDB]> SELECT VERSION();
+--------------------+
| VERSION()          |
+--------------------+
| 10.3.7-MariaDB-log |
+--------------------+
1 row in set (0.392 sec)

1 Ответ

0 голосов
/ 01 февраля 2019

Так как я могу узнать, когда был создан вид?Или это просто невозможно.

Нет, это невозможно.

Представление на самом деле не содержит данных, оно просто состоит из определения, то есть оператора SQL, который ссылается на данные, содержащиеся в реальных (физических) таблицах: следовательно, это все, что INFORMATION_SCHEMA.VIEWSмогу показать вам.

...