将 MySQL 8.0 DDL 脚本解析并导出为 Excel 格式的表结构文档。
CREATE TABLE 语句每个 Sheet 的格式如下:
| 行号 | 内容 |
|---|---|
| ------ | ------ |
| 第1行 | 表名:表名:table_name |
| 第2行 | 表头:属性名、数据类型、长度、精度 |
| 第3行+ | 实际数据:字段信息 |
node scripts/parse_ddl.js <sql文件路径> [输出文件路径]
示例:
node scripts/parse_ddl.js ddl.sql 表结构导出.xlsx
const { parseCreateTables, generateExcel } = require('./scripts/parse_ddl');
const fs = require('fs');
const sqlContent = fs.readFileSync('ddl.sql', 'utf-8');
// 解析表结构
const tables = parseCreateTables(sqlContent);
// 生成 Excel
generateExcel(tables, 'output.xlsx');
脚本会自动识别以下 MySQL 数据类型并设置默认长度:
| 数据类型 | 默认长度 |
|---|---|
| --------- | --------- |
| tinyint | 3 |
| smallint | 5 |
| mediumint | 7 |
| int/integer | 10 |
| bigint | 19 |
| decimal/numeric | 38 |
| float | 12 |
| double | 22 |
| datetime/timestamp | 6 |
| date | 10 |
| time | 8 |
| year | 4 |
| boolean/bool | 1 |
| text/tinytext/mediumtext/longtext | 65535 |
| blob/tinyblob/mediumblob/longblob | 65535 |
| json | 1073741824 |
| varchar(n) | n |
| char(n) | n |
npm install xlsx)cd scripts
npm install xlsx
输入 SQL:
CREATE TABLE users (
id bigint NOT NULL AUTO_INCREMENT,
username varchar(50) NOT NULL,
email varchar(100) NULL,
created_at timestamp(6) NULL,
PRIMARY KEY (id)
);
输出 Excel:
| A | B | C | D | |
|---|---|---|---|---|
| --- | --- | --- | --- | --- |
| 1 | 表名:users | |||
| 2 | 属性名 | 数据类型 | 长度 | 精度 |
| 3 | id | bigint | 19 | 0 |
| 4 | username | varchar | 50 | 0 |
| 5 | varchar | 100 | 0 | |
| 6 | created_at | timestamp | 6 | 0 |
共 1 个版本