mysql表文件

头儿要我给项目弄一个启动就检索表存在这么一个功能.

挺简单的,借用从朋友那里偷来的sql语句

select t.table_name from information_schema.TABLES t where t.TABLE_SCHEMA ="数据库" and t.TABLE_NAME ="表名";

java代码也很简单 吧检索的代码丢启动类就行

但是我测试发现问题

我这里习惯去直接将数据库文件丢到另一mysql 这里测试 我就直接吧mysql表文件给移出data文件夹 而不是用sql语句删除

这里正规一点的开发环境都不带这么弄的,我这儿特殊一些。

我发现使用这语句查询 information_schema.TABLES,我已经删除掉了表文件,但是记录依旧是存在的,查这个表名数据觉对是有的。

查看这个删除表文件的记录

image-20200308174141127

正常的记录是create update都有的

所以我稍微改一下 改为差update时间这列,完美解决。

正规一点的环境完全不需要考虑这些,直接验证表名就ok。

这里说下表文件

表存储引擎默认innodb

当你创建一张表 并插入数据后

mysql目录data文件夹下会生成表名为名的frm和ibd文件

image-20200308175439041

ibd是表数据文件 frm是表结构文件

当你使用myisam时

image-20200308180420323

.frm文件保存表的定义,但是这个文件并不是MyISAM引擎的一部分,而是服务器的一部分;.MYD保存表的数据;.MYI是表的索引文件。

这脸存储引擎的区别主要在于对事务的支持。。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!