你好世界

若依框架学习 代码生成器

若依中查询表名的sql语句

复制代码
    <select id="selectDbTableList" parameterType="GenTable" resultMap="GenTableResult">
        select table_name, table_comment, create_time, update_time from information_schema.tables
        where table_schema = (select database())
        AND table_name NOT LIKE 'qrtz_%' AND table_name NOT LIKE 'gen_%'
        AND table_name NOT IN (select table_name from gen_table)
        <if test="tableName != null and tableName != ''">
            AND lower(table_name) like lower(concat('%', #{tableName}, '%'))
        </if>
        <if test="tableComment != null and tableComment != ''">
            AND lower(table_comment) like lower(concat('%', #{tableComment}, '%'))
        </if>
        <if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
            AND date_format(create_time,'%y%m%d') &gt;= date_format(#{params.beginTime},'%y%m%d')
        </if>
        <if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 -->
            AND date_format(create_time,'%y%m%d') &lt;= date_format(#{params.endTime},'%y%m%d')
        </if>
        order by create_time desc
    </select>
复制代码

该sql语句能够查询到符合条件的数据库名,然后按照创建时间降序排列,最终返回这些表的表名、表注释、创建时间和更新时间等信息。

获取到表名后可以通过  SHOW COLUMNS FROM your_table_name; 获取表的所有列信息(猜测) 不过好像框架里没有类似语句,也可能是没找到

 

关于该语句的详细解释

  1. SELECT table_name, table_comment, create_time, update_time:选择要查询的字段,即表名、表注释、创建时间和更新时间。
  1. FROM information_schema.tables:指定查询的表为 information_schema.tables,该表包含了数据库中所有表的元数据信息。
  1. WHERE table_schema = (SELECT database()):限定查询当前数据库中的表。
  1. AND table_name NOT LIKE 'qrtz_%' AND table_name NOT LIKE 'gen_%':排除表名以 "qrtz" 或 "gen" 开头的表。
  1. AND table_name NOT IN (SELECT table_name FROM gen_table):排除已经存在于 gen_table 表中的表名。
  1. AND LOWER(table_name) LIKE LOWER('%user%'):根据条件筛选表名,这里是模糊查询包含 "user" 字符的表名,不区分大小写。
  1. AND DATE_FORMAT(create_time, '%Y-%m-%d') >= '2022-01-01':限定查询结果中创建时间在 2022 年 1 月 1 日及之后的表。
  1. AND DATE_FORMAT(create_time, '%Y-%m-%d') <= '2022-12-31':限定查询结果中创建时间在 2022 年 12 月 31 日及之前的表。
  1. ORDER BY create_time DESC:将查询结果按照创建时间倒序(降序)排序,以便最新创建的表显示在前面。

 

posted @   constantinealicia  阅读(122)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示