Mysql显示按创建日期排序的数据库?

时间:2015-12-12 04:09:06

标签: mysql

有没有办法使用命令获取按创建日期或上次更新日期排序的MySQL数据库列表?

5 个答案:

答案 0 :(得分:16)

试试这个,如果您想要更新日期,可以通过update_time

订购
SELECT 
table_schema,
MAX(create_time) create_time,
MAX(update_time) update_time
FROM information_schema.tables
Group by TABLE_SCHEMA
Order by create_time desc

答案 1 :(得分:1)

Information_schema数据库包含有关数据库的元数据:

SELECT distinct  table_schema
FROM   information_schema.tables
Order by update_time

答案 2 :(得分:1)

如果您想按最新创建日期从information_schema订单获取数据库名称列表,请查看以下代码:

SELECT table_schema, MAX(create_time) create_time, MAX(update_time) update_time
FROM information_schema.tables WHERE create_time IS NOT NULL
GROUP BY TABLE_SCHEMA
ORDER BY create_time DESC;

从上面的查询得到的结果,我看到create_time列的结果为null值。我假设默认情况下可以在mysql安装程序中创建这些记录,因此请进行一些改进。

为null create_time记录以上的过滤器添加WHERE create_time IS NOT NULL

SELECT table_schema, MAX(create_time) create_time, MAX(update_time) update_time
FROM information_schema.tables WHERE create_time IS NOT NULL
GROUP BY TABLE_SCHEMA
ORDER BY create_time DESC;

注意:如果您只想使用 table_schema 的结果,并且不想使用DISTINCTMAX(),则可以使用GROUP BY

为此,您需要使用以下代码:

SELECT DISTINCT  table_schema
FROM information_schema.tables
ORDER BY update_time

如果有任何疑问,请告诉我。

我希望这有帮助。

答案 3 :(得分:1)

考虑以下架构和查询

模式

create table xInnodb
(   i int 
); -- ie: engine=INNODB

create table xMyISAM
(   i int
)engine=MyISAM;

insert xInnodb (i) values (1);
insert xMyISAM (i) values (1);
-- or even update statements after the fact

查询

SELECT table_schema,
table_name,
engine,
create_time,
update_time
FROM information_schema.tables
where TABLE_SCHEMA ='so_gibberish' -- my database name
and table_type='BASE TABLE' -- don't show views
Order by create_time desc;


+--------------+------------+--------+---------------------+---------------------+
| table_schema | table_name | engine | create_time         | update_time         |
+--------------+------------+--------+---------------------+---------------------+
| so_gibberish | xmyisam    | MyISAM | 2015-12-12 00:03:18 | 2015-12-12 00:10:54 |
| so_gibberish | xinnodb    | InnoDB | 2015-12-12 00:03:17 | NULL                |
+--------------+------------+--------+---------------------+---------------------+

您会发现innodb表格update_timeNULL

可以在名为The INFORMATION_SCHEMA TABLES Table的手册页中阅读:

  

从MySQL 5.7.2开始,UPDATE_TIME显示时间戳值   在InnoDB表上执行的最后一次UPDATE,INSERT或DELETE   没有分区。以前,UPDATE_TIME显示NULL值   InnoDB表。

答案 4 :(得分:0)

尝试此操作以显示所有数据库并创建时间......

  

SELECT table_schema,create_time FROM INFORMATION_SCHEMA.TABLES;

注意:我没有测试过这个