Utilice vim y Markdown para convertir la copia de seguridad exportada por MySQL en un diccionario de datos en formato HTML

Utilice vim y Markdown para convertir la base de datos exportada de MySQL en un diccionario de datos (tabla de Markdown)

1. Convertir a tabla

# 将导出的各个字段以'|'分隔
%s/^\s*`\([^`]\+`\)\s*\(\w\+[^ \t]*\)\s*\(.*\)$/| \1 | \2 | \3 |/gc
# 将注释转换为'|'分隔
%s/COMMENT\s*'/| '/gc
# 整理,删除两个'|'之间的','字符
%s/,\s*|/ |/gc
# 添加表头
%s/^\(CREATE\s*TABLE\s*.*\)$/\1\r|字段|类型|缺省值|备注|\r|-|-|-|-|/gc
# 添加内部链接
%s/^DROP\s*TABLE\s*[^`]\+`\(\w\+\)`;/![][b-png]<span id="\1">\&nbsp;<\/span>\r## \1/gc

Ejemplo de SQL exportado por MySQL:

DROP TABLE IF EXISTS `t_001_info`;

CREATE TABLE `t_001_info` (
  `id` varchar(32) NOT NULL,
  `code` varchar(32) NOT NULL COMMENT '行政区划',
  `info` varchar(64) NOT NULL COMMENT '信息',
  `online` char(1) NOT NULL COMMENT '状态',
  `address` varchar(18) NOT NULL COMMENT '地址,16进制',
  `update_time` varchar(32) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `t_001_index` (`id`,`code`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


DROP TABLE IF EXISTS `t_002_fn49`;

CREATE TABLE `t_002_fn49` (
  `id` varchar(32) NOT NULL,
  `area_id` varchar(18) DEFAULT NULL COMMENT '区域id',
  `pn` varchar(12) NOT NULL COMMENT '测量点标识',
  `Uab_Ua` varchar(8) DEFAULT NULL COMMENT 'Uab/Ua 相位角',
  `Ub` varchar(8) DEFAULT NULL COMMENT 'Ub 相位角',
  `Ucb_Uc` varchar(8) DEFAULT NULL COMMENT 'Ucb/Uc 相位角',
  `Ia` varchar(8) DEFAULT NULL COMMENT 'Ia 相位角',
  `Ib` varchar(8) DEFAULT NULL COMMENT 'Ib 相位角',
  `Ic` varchar(8) DEFAULT NULL COMMENT 'Ic 相位角',
  `sendTime` varchar(19) NOT NULL COMMENT '启动帧发送时标',
  PRIMARY KEY (`id`),
  KEY `t_002_index` (`id`,`pn`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='电压/电流相位角';

El texto después del reemplazo anterior:

![][b-png]<span id="t_001_info">&nbsp;</span>
## t_001_info

CREATE TABLE `t_001_info` (
|字段|类型|缺省值|备注|
|-|-|-|-|
| id` | varchar(32) | NOT NULL |
| code` | varchar(32) | NOT NULL | '行政区划' |
| info` | varchar(64) | NOT NULL | '信息' |
| online` | char(1) | NOT NULL | '状态' |
| address` | varchar(18) | NOT NULL | '地址,16进制' |
| update_time` | varchar(32) | NOT NULL |
  PRIMARY KEY (`id`),
  UNIQUE KEY `t_001_index` (`id`,`code`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


![][b-png]<span id="t_002_fn49">&nbsp;</span>
## t_002_fn49

CREATE TABLE `t_002_fn49` (
|字段|类型|缺省值|备注|
|-|-|-|-|
| id` | varchar(32) | NOT NULL |
| area_id` | varchar(18) | DEFAULT NULL | '区域id' |
| pn` | varchar(12) | NOT NULL | '测量点标识' |
| Uab_Ua` | varchar(8) | DEFAULT NULL | 'Uab/Ua 相位角' |
| Ub` | varchar(8) | DEFAULT NULL | 'Ub 相位角' |
| Ucb_Uc` | varchar(8) | DEFAULT NULL | 'Ucb/Uc 相位角' |
| Ia` | varchar(8) | DEFAULT NULL | 'Ia 相位角' |
| Ib` | varchar(8) | DEFAULT NULL | 'Ib 相位角' |
| Ic` | varchar(8) | DEFAULT NULL | 'Ic 相位角' |
| sendTime` | varchar(19) | NOT NULL | '启动帧发送时标' |
  PRIMARY KEY (`id`),
  KEY `t_002_index` (`id`,`pn`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='电压/电流相位角';

Luego, copie el texto en Markdown

2. Indexación (enlace interno)

# 制作内部链接
%s/^CREATE\s*TABLE\s*.\(\w\+\).\s*(\s*\n\%(\s.*\n\)\+).*[^=]*=[^=]*=\([^;]*\);/[\1](#\1)(\2)/gc
# 删除非索引文本
v/^\[t_/d
# 整理,删除'(utf8)'
%s/([^#'][^)]*)$//gc

Luego, copie el texto en Markdown

[t_001_info](#t_001_info)
[t_002_fn49](#t_002_fn49)('电压/电流相位角')

3. Embellecimiento de formas

Agregue el siguiente texto en el lugar apropiado al comienzo del archivo MArkdown

# 改变CSS定义的各列的宽度	
<style>
table th:nth-of-type(1) {
	width: 28%;
}
table th:nth-of-type(2) {
	width: 12%;
}
table th:nth-of-type(3) {
	width: 25%;
}
</style>

4. Resultado de salida (diccionario de datos)

t_001_info
t_002_fn49 ('Voltaje / Ángulo de fase actual')

 

t_001_info

CREAR TABLA t_001_info(

Campo Tipos de Valor por defecto Observaciones
id` varchar (32) NO NULO
código` varchar (32) NO NULO 'Divisiones administrativas'
info` varchar (64) NO NULO 'información'
en línea` char (1) NO NULO 'estado'
dirección` varchar (18) NO NULO 'Dirección, hexadecimal'
update_time` varchar (32) NO NULO

LLAVE PRIMARIA ( id),
LLAVE ÚNICA t_001_index( id, code) USANDO BTREE
) MOTOR = InnoDB DEFAULT CHARSET = utf8;

 

t_002_fn49

CREAR TABLA t_002_fn49(

Campo Tipos de Valor por defecto Observaciones
id` varchar (32) NO NULO
area_id` varchar (18) DEFAULT NULL 'ID de área'
pn` varchar (12) NO NULO 'Identificación del punto de medición'
Uab_Ua` varchar (8) DEFAULT NULL 'Ángulo de fase Uab / Ua'
Ub` varchar (8) DEFAULT NULL 'Ángulo de fase Ub'
Ucb_Uc` varchar (8) DEFAULT NULL 'Ángulo de fase Ucb / Uc'
Él` varchar (8) DEFAULT NULL 'Ia fase de ángulo'
Ib` varchar (8) DEFAULT NULL 'Ángulo de fase Ib'
Ic` varchar (8) DEFAULT NULL 'Ángulo de fase Ic'
sendTime` varchar (19) NO NULO 'Iniciar el envío de la marca de tiempo'

PRIMARY KEY ( id),
KEY t_002_index( id, pn)
) MOTOR = InnoDB DEFAULT CHARSET = utf8 COMMENT = 'Voltaje / ángulo de fase actual';

Supongo que te gusta

Origin blog.csdn.net/hylaking/article/details/80284027
Recomendado
Clasificación