mysql show full_MySQL 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说明文档:

mysql_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上保存,惊喜出来了:参数名称类型非空约束备注说明idvarchar(32)NO用户IDuser_namevarchar(64)NO用户姓名passwordvarchar(64)NO登录密码emailvarchar(64)NO邮箱地址mobilevarchar(64)NO手机号addressvarchar(512)NO地址sextinyint(4)NO性别,1-男、2-女、3-未知statusint(10) unsignedNO状态:1、未转正;2、虚拟;4、转正;8、待离职;16、已离职security_keyvarchar(128)NO登陆安全校验码ctimeint(10) unsignedNO数据创建时间mtimeint(10) unsignedNO记录最后一次修改的时间

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

总结

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值