MySQL用注释当表头

用中文注释当查询结果的表头

效果展示

# 若存储过程存在则删除
DROP PROCEDURE IF EXISTS sel;
# 创建一个存储过程
CREATE PROCEDURE sel(db VARCHAR(21845), tab VARCHAR(21845))
  # 开始内容
  BEGIN
    # 生成查询列注释放入 @colas 的语句
    SET @s = concat('
      SELECT group_concat(CASE COLUMN_COMMENT
                          WHEN \'\' THEN COLUMN_NAME
                          ELSE concat(COLUMN_NAME, \' AS \', COLUMN_COMMENT)
                          END SEPARATOR \', \') AS colas
      INTO @colas FROM information_schema.COLUMNS
      WHERE TABLE_SCHEMA = \'', db, '\' AND TABLE_NAME = \'', tab, '\'
    ');

    # 预编译、执行、释放
    PREPARE sel FROM @s;
    EXECUTE sel;
    DEALLOCATE PREPARE sel;

    # 拼接简单查询语句
    SET @s = concat('SELECT ', @colas, ' FROM ', db, '.', tab);

    PREPARE sel FROM @s;
    EXECUTE sel;
  END;

# 查询保存的 列名 AS 注释,
SELECT @colas;

# 使用例子 sel('数据库', '表');
CALL sel('test', 'job_depend');

# 预编译的语句再执行
EXECUTE sel;

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏java初学

数据库索引

446170
来自专栏抠抠空间

MySQL 如何删除有外键约束的表数据

今天删除数据库中数据,提示因为设置了foreign key,无法修改删除 可以通过设置FOREIGN_KEY_CHECKS变量来避免这种情况。

21230
来自专栏互联网杂技

外键约束

外键约束 foreign key 外键约束的要求: 父表和字表必须使用相同的存储引擎,禁止使用临时表; 数据库引擎只能是InnoDB; 外键列和参照列必须具有...

36490
来自专栏开源项目

Git 项目推荐 | 分布式系统唯一 ID 生成方法

image.png 在工程中引用sequence项目的sequence-client jar包 在的应用数据库中创建两个sequence表,sql语句如下:...

337110
来自专栏我的博客

Sqlite创建表以及默认当前时间

1、创建数据库 CREATE TABLE Joyous_sqlite ( id INTEGER NOT NULL, create_time TIMESTAM...

38430
来自专栏奇梦博客

Xiuno BBS 4.0 表结构 XiunoBBS

11410
来自专栏jeremy的技术点滴

保存mysql InnoDB的auto_increment值另类方案

28850
来自专栏www.96php.cn

mysql 快速生成百万条测试数据

1、生成思路 利用mysql内存表插入速度快的特点,先利用函数和存储过程在内存表中生成数据,然后再从内存表插入普通表中 2、创建内存表及普通表 CREATE T...

700120
来自专栏zcqshine's blog

mysql case when 多参数条件语法

497120
来自专栏抠抠空间

MySql之数据操作

一、增 1. 插入完整数据(顺序插入) 语法一: INSERT INTO 表名(字段1,字段2,字段3…字段n) VALUES(值1,值2,值3...

29280

扫码关注云+社区

领取腾讯云代金券