使用java获取Mysql数据库创建日期
在windows上使用mysql 5.5.2(Wamp),我正在编写一个使用多个数据库的Java应用程序。我想列出数据库名称及其创建日期。数据库具有相同表的唯一数据(存档)。Java有什么诀窍吗 编辑: “formaction\u archive\u test”和“sw\u formaction”都是由我“root”创建的,它们有相同的表。我的问题是如何获得它们各自的创建日期 我找到了这个解决方案:使用java获取Mysql数据库创建日期,java,mysql,database,Java,Mysql,Database,在windows上使用mysql 5.5.2(Wamp),我正在编写一个使用多个数据库的Java应用程序。我想列出数据库名称及其创建日期。数据库具有相同表的唯一数据(存档)。Java有什么诀窍吗 编辑: “formaction\u archive\u test”和“sw\u formaction”都是由我“root”创建的,它们有相同的表。我的问题是如何获得它们各自的创建日期 我找到了这个解决方案: mysql> use information_schema; Database chang
mysql> use information_schema;
Database changed
mysql> SELECT table_name, create_time
-> FROM tables
-> WHERE table_schema NOT IN('mysql', 'information_schema') ;
+----------------------------------------------+---------------------+
| table_name | create_time |
+----------------------------------------------+---------------------+
| cond_instances | NULL |
| events_waits_current | NULL |
| events_waits_history | NULL |
| events_waits_history_long | NULL |
| events_waits_summary_by_instance | NULL |
| events_waits_summary_by_thread_by_event_name | NULL |
| events_waits_summary_global_by_event_name | NULL |
| file_instances | NULL |
| file_summary_by_event_name | NULL |
| file_summary_by_instance | NULL |
| mutex_instances | NULL |
| performance_timers | NULL |
| rwlock_instances | NULL |
| setup_consumers | NULL |
| setup_instruments | NULL |
| setup_timers | NULL |
| threads | NULL |
| annee | 2012-06-06 16:19:04 |
| categorie | 2012-06-06 16:19:04 |
| certification | 2012-06-06 16:19:04 |
| client | 2012-06-06 16:19:04 |
| clientold | 2012-06-06 16:19:04 |
| connaisance_ecole | 2012-06-06 16:19:04 |
| duree | 2012-06-06 16:19:04 |
| eleve | 2012-06-06 16:19:04 |
| famille | 2012-06-06 16:19:04 |
| formateur | 2012-06-06 16:19:04 |
| formation | 2012-06-06 16:19:04 |
| inscription | 2012-06-06 16:19:04 |
| lieux | 2012-06-06 16:19:05 |
| lst_formation | 2012-06-06 16:19:05 |
| moyen_paiement | 2012-06-06 16:19:05 |
| paiement | 2012-06-06 16:19:05 |
| session | 2012-06-06 16:19:05 |
| souhait | 2012-06-06 16:19:05 |
| souhaits | 2012-06-06 16:19:05 |
| type_certification | 2012-06-06 16:19:05 |
+----------------------------------------------+---------------------+
37 rows in set (0.01 sec)
但它只显示最后创建的数据库信息。可能解决方案是查看文件创建日期?我不确定Java中是否有特定的技巧可以帮助您,但检查此处引用的
信息\u SCHEMA\u表
表可能会有所帮助。可能需要所有表的最小创建时间,并将其用作数据库创建时间
顺便说一句,没有办法检查何时使用纯SQL创建数据库。应该是这个请求才能获得它:
SELECT table_name, create_time
FROM information_schema.tables
您可以删除information\u schema
和mysql
模式,以获得您创建的模式:
SELECT table_name, create_time
FROM information_schema.tables
WHERE table_schema NOT IN('mysql', 'information_schema')
编辑:
要获取数据库创建时间,唯一的方法是检查最旧的表:
SELECT MIN(create_time)
FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = 'my_database'
如果需要,可以在数据库中插入一个无用(或非无用)的表,如
\u config
,它将永远不会被删除 您是否有为您的案例实现的SQL查询?我从这个解决方案开始,但正如我所说的,数据库有相同的表,这只提供最后创建的表信息great!这解决了我真正的问题,“formaction\u archive\u test”创建时间的值为空,但这是因为我在浏览器中将原始数据库“sw\u formaction”复制/重命名为“formaction\u archive\u test”。因此,第二个数据库的信息模式表中没有存储任何信息。对不起,我弄错了。有没有办法知道没有表的数据库的创建时间?谢谢你的提问。最好是检查物理数据库(存储数据的文件)。查看/var/lib/mysql/
文件夹。
SELECT MIN(create_time)
FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = 'my_database'