序言
在工作中有事会遇到动态传入表名去查询数据的需求,但是我们这时候并不知晓该表是否建立(按日分表有时没有数据不会建表),防止表不存在报错,可以在查询之前先查询数据库中表是否存在。
查询数据库中是否存在该表(可指定数据库名)
示例代码
//按日分天 表名固定部分
private static String TABLE_NAME = "tab_Call_";
//返回值大于0,则证明表存在反之 表不存在
public int checkTableExistsWithSchema(String dayStr) {
// 组装表名
String tableName =TABLE_NAME + dayStr;
//查询表是否存在 sql
return checkTableMapper.checkTableExistsWithSchema(tableName);
}
示例SQL
下面sql为完整查询表是否存在sql,其中需要将 schema 改为自己的数据库名,如果你的ip:port 下只有一个数据库则不需要指定数据库,这里如果不指定数据库,会查询该 ip:port 下所有数据库中是否存在该表 #{tableName}
<select id="checkTableExistsWithSchema"
resultType="java.lang.Integer">
SELECT COUNT(1) FROM information_schema.tables WHERE
table_schema= 'schema' and table_name = #{tableName}
</select>
结束
上面包含了部分代码及 sql ,将这些融入到自己的代码中就可以完成查询表是否存在于数据库中的操作
序言
不是职业博主,只是记录自己用到的一些技术点或者问题相关的解决办法,以便于以后用到的时候查看,顺便分享。