MySQL 一键生成wiki、protobuf等

来源:互联网 发布:利用淘宝店做淘宝客 编辑:程序博客网 时间:2024/06/06 00:34

SHOW FULL FIELDS FROM TABLE 语句的妙用


例如一个create table语句:

CREATE TABLE `t_user` (  `id` varchar(32) NOT NULL COMMENT '用户ID',  `user_name` varchar(64) NOT NULL COMMENT '用户姓名',  `password` varchar(64) NOT NULL COMMENT '登录密码',  `email` varchar(64) NOT NULL COMMENT '邮箱地址',  `mobile` varchar(64) NOT NULL DEFAULT '' COMMENT '手机号',  `address` varchar(512) NOT NULL DEFAULT '' COMMENT '地址',  `sex` tinyint(4) NOT NULL DEFAULT '0' COMMENT '性别,1-男、2-女、3-未知',  `status` int(10) unsigned NOT NULL DEFAULT '1' COMMENT '状态:1、未转正;2、虚拟;4、转正;8、待离职;16、已离职',  `security_key` varchar(128) NOT NULL DEFAULT '' COMMENT '登陆安全校验码',  `ctime` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '数据创建时间',  `mtime` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '记录最后一次修改的时间',  PRIMARY KEY (`id`),  KEY `idx_mobile` (`mobile`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户信息表';

表创建成功后,执行如下命令:

SHOW FULL FIELDS FROM t_user

Field         Type              Collation           Null    Key     Default  Extra   Privileges                       Comment                                                                            ------------  ----------------  ------------------  ------  ------  -------  ------  -------------------------------  -----------------------------------------------------------------------------------id            varchar(32)       utf8mb4_general_ci  NO      PRI     (NULL)           select,insert,update,references  用户ID                                                                           user_name     varchar(64)       utf8mb4_general_ci  NO              (NULL)           select,insert,update,references  用户姓名                                                                       password      varchar(64)       utf8mb4_general_ci  NO              (NULL)           select,insert,update,references  登录密码                                                                       email         varchar(64)       utf8mb4_general_ci  NO              (NULL)           select,insert,update,references  邮箱地址                                                                       mobile        varchar(64)       utf8mb4_general_ci  NO      MUL                      select,insert,update,references  手机号                                                                          address       varchar(512)      utf8mb4_general_ci  NO                               select,insert,update,references  地址                                                                             sex           tinyint(4)        (NULL)              NO              0                select,insert,update,references  性别,1-男、2-女、3-未知                                                  status        int(10) unsigned  (NULL)              NO              1                select,insert,update,references  状态:1、未转正;2、虚拟;4、转正;8、待离职;16、已离职  security_key  varchar(128)      utf8mb4_general_ci  NO                               select,insert,update,references  登陆安全校验码                                                              ctime         int(10) unsigned  (NULL)              NO              0                select,insert,update,references  数据创建时间                                                                 mtime         int(10) unsigned  (NULL)              NO              0                select,insert,update,references  记录最后一次修改的时间              

就是把表的结构当成表操作取出来,包括字段名、类型、备注等,执行这个sql语句能干什么呢?
一般,表创建后下一步是不是要写protobuf的message
或者写wiki
或者生成一些固定代码

如今通过SHOW FULL FIELDS FROM TABLE 可以轻轻松松自动化生成搞定一切。

比如写了个不到10行的php代码来生成markdown说明文档:

<?phpmysql_connect("localhost", "root", "123123") or    die("Could not connect: " . mysql_error());mysql_select_db("test");$result = mysql_query("SHOW FULL FIELDS FROM t_user");echo "| 参数名称 | 类型 | 非空约束 | 备注说明|\n| ------ | ------ | ------ | ------ |\n";while ($row = mysql_fetch_array($result, MYSQL_NUM)) {     echo "|{$row[0]}|{$row[1]}|{$row[3]}|{$row[8]}|\n";}mysql_free_result($result);?>

最后直接输出:

| 参数名称 | 类型 | 非空约束 | 备注说明|| ------ | ------ | ------ | ------ ||id|varchar(32)|NO|用户ID||user_name|varchar(64)|NO|用户姓名||password|varchar(64)|NO|登录密码||email|varchar(64)|NO|邮箱地址||mobile|varchar(64)|NO|手机号||address|varchar(512)|NO|地址||sex|tinyint(4)|NO|性别,1-男、2-女、3-未知||status|int(10) unsigned|NO|状态:1、未转正;2、虚拟;4、转正;8、待离职;16、已离职||security_key|varchar(128)|NO|登陆安全校验码||ctime|int(10) unsigned|NO|数据创建时间||mtime|int(10) unsigned|NO|记录最后一次修改的时间|

复制到wiki上保存,惊喜出来了:

参数名称 类型 非空约束 备注说明 id varchar(32) NO 用户ID user_name varchar(64) NO 用户姓名 password varchar(64) NO 登录密码 email varchar(64) NO 邮箱地址 mobile varchar(64) NO 手机号 address varchar(512) NO 地址 sex tinyint(4) NO 性别,1-男、2-女、3-未知 status int(10) unsigned NO 状态:1、未转正;2、虚拟;4、转正;8、待离职;16、已离职 security_key varchar(128) NO 登陆安全校验码 ctime int(10) unsigned NO 数据创建时间 mtime int(10) unsigned NO 记录最后一次修改的时间

干净利落快捷一秒生成wiki,怎么一个爽字了得


总结

通过SHOW FULL FIELDS FROM TABLE 获取到了字段名、类型、注释要自动生成什么都是分分钟的事了。

1 0
原创粉丝点击