【发布时间】:2014-02-01 06:08:08
【问题描述】:
考虑一下——有很多数据库,每个数据库都有很多表。我提取了具有 'date/datetime' 数据类型的列以及 table name 和 schema name 。
SELECT
c.column_name AS col,
column_type AS type,
c.table_name AS tn,
c.table_schema AS ts
FROM
information_schema.columns AS c,
(SELECT
table_name, table_schema, table_rows AS tr
FROM
information_schema.TABLES
ORDER BY table_schema) a
WHERE
column_type LIKE 'date%'
AND a.table_name = c.table_name
AND a.table_schema = c.table_schema
;
我得到了这些列 = (column,column_type,table_name,table_Schema)。现在我想在结果中循环(或者任何其他方式都可以)并且对于每一行我想要这样做
SELECT max(column) FROM table_schema.table_name
比如第一行是(login_date,date,login,customers),我想做
SELECT max(login_date) FROM customers.login
我想对每一行都这样做。任何帮助将不胜感激。
【问题讨论】:
-
看看存储过程、临时表和游标。
-
您是否想知道表格的最后更新时间?在这种情况下,这样的事情应该可以解决问题:
SELECT UPDATE_TIME FROM information_schema.tables WHERE TABLE_SCHEMA = 'dbname' AND TABLE_NAME = 'tabname' -
不,我不想知道上次更新表格的时间。这是一个非常抽象的问题,是我想做的事情的一小部分。我只想找到日期/日期时间数据类型的每一列的最大值。
标签: mysql sql database database-schema information-schema