phpMyAdmin 导出 SQL 时应取消勾选“添加 CREATE TABLE 语句”和“添加 DROP TABLE 语句”,勾选“显示列注释”,再手动将字段定义转为 MediaWiki 表格语法,统一简化类型、合并键信息,并优先通过脚本从 INFORMATION_SCHEMA 自动生成以保障准确性与可维护性。
phpMyAdmin 导出 SQL 时怎么避开 CREATE TABLE 里的引擎和字符集干扰
mediawiki 的表结构文档(比如在企业 wiki 里写「用户表字段说明」)不需要执行用的完整 ddl,只需要清晰、可读、无环境依赖的字段定义。但 phpmyadmin 默认导出的 create table 会带上 engine=innodb、default charset=utf8mb4、collate=utf8mb4_unicode_ci 这类 mysql 特有配置——它们对 wiki 文档毫无意义,还容易误导读者以为这些是字段属性。
实操建议:
立即学习“PHP免费学习笔记(深入)”;
- 进 phpMyAdmin → 选中目标数据库 → 点「导出」→ 切换到「自定义」模式
- 在「格式特定选项」里,**取消勾选「添加 CREATE TABLE 语句」和「添加 DROP TABLE 语句」**(否则会混入无关 DDL)
- 勾选「显示列注释」——这是关键,否则
COMMENT字段内容(比如「用户邮箱,唯一索引」)就丢了 - 导出格式选
SQL,别用 CSV 或 JSON,它们不保留字段类型和注释
怎么把导出的 SQL 转成 MediaWiki 表格语法(不是复制粘贴就完事)
直接把 phpMyAdmin 导出的 CREATE TABLE 块扔进 Wiki 页面,只会得到一堆不可读的代码块。MediaWiki 表格需要的是字段名、类型、是否为空、键、注释这五列的对齐表格,且要兼容 Wiki 渲染器(比如不支持 TEXT 后面跟括号参数)。
常见错误现象:varchar(255) 被原样贴进去,结果 Wiki 页面显示为「varchar(255)」带括号,阅读体验差;tinyint(1) 被当成布尔含义,但没标注;datetime DEFAULT CURRENT_TIMESTAMP 里的默认值在 Wiki 里根本没人关心。
实操建议:
立即学习“PHP免费学习笔记(深入)”;
- 用文本编辑器(如 VS Code)打开导出的 SQL,定位到
CREATE TABLE `xxx` (和结尾的);之间 - 逐行处理每条字段定义:把
`user_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键'拆成四栏:user_id|int|NOT NULL|主键 - 类型统一简化:去掉所有括号内容(
varchar(255)→varchar,tinyint(1)→tinyint),datetime和timestamp保留原名即可 - 键信息合并到「是否为空」栏:比如
PRIMARY KEY就标NOT NULL (PK),UNIQUE KEY标UNIQUE
为什么不能直接用 phpMyAdmin 的「显示结构」页面截图或复制
「显示结构」页看着直观,但它本质是 HTML 表格,复制出来是纯文本,字段类型和注释错位严重(比如注释跑到下一行、类型被截断),而且没有区分「允许 NULL」和「默认值」——这两项对业务理解很关键。
更麻烦的是,它不显示索引信息(除了主键),而企业 Wiki 文档常需注明「idx_user_email 加在 email 字段上,用于登录查询」这类上下文。
实操建议:
立即学习“PHP免费学习笔记(深入)”;
- 别截图,截图无法搜索、无法版本比对、无法 diff 差异
- 别复制「显示结构」页的文本,它缺失索引、约束、外键关系
- 如果必须快速出一版,先用「导出」→「结构」→「仅数据类型」,再手动补索引说明(查
SHOW INDEX FROM `table_name`结果)
如何让 Wiki 表格自动适配后续表结构变更
人工维护 Wiki 表结构最大的坑,是改了库却忘了更新 Wiki,或者多人协作时覆盖彼此的修改。没有自动化,靠人盯,迟早脱节。
性能 / 兼容性影响:每次改表都手动同步 Wiki,平均耗时 3–5 分钟;而用脚本从 INFORMATION_SCHEMA 抓取并生成 Wiki 表格,首次写脚本约 20 分钟,之后每次只需 php gen_wiki_table.php users 一行命令。
实操建议:
立即学习“PHP免费学习笔记(深入)”;
- 写一个极简 PHP 脚本,连数据库后查
SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT, COLUMN_COMMENT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='your_db' AND TABLE_NAME='users' ORDER BY ORDINAL_POSITION - 输出格式直接按 MediaWiki 表格语法拼接:
| <code>user_id||int||NOT NULL (PK)|| ||主键 - 把脚本放在项目
docs/目录下,加进 README 提示「更新表结构后运行此脚本」
真正难的不是第一次生成,而是把「字段注释」写准确——DBA 很少填 COMMENT,而 Wiki 文档的价值恰恰卡在这里。没注释的字段,宁可留空,也别瞎猜。











