当前位置: 首页 > article >正文

使用 mysqldump 获取 MySQL 表的完整创建 DDL

要获取 MySQL 中某个表的完整创建 DDL(仅结构,不含数据),可以使用 mysqldump 工具的以下命令:

基本命令格式

bash

mysqldump -h [主机名] -u [用户名] -p --no-data --single-transaction --routines --triggers --add-drop-table [数据库名] [表名]

实际示例(获取 class_students 表的 DDL)

bash

mysqldump -h localhost -u root -p --no-data --single-transaction --routines --triggers --add-drop-table --compact --complete-insert school_db class_students

参数说明

参数说明
-h指定 MySQL 主机地址
-u指定用户名
-p提示输入密码
--no-data只导出表结构,不导出数据
--single-transaction使用事务保证数据一致性
--routines包含存储过程和函数
--triggers包含触发器
--add-drop-table在 CREATE TABLE 前添加 DROP TABLE 语句
--compact产生更紧凑的输出
--complete-insert使用完整的 INSERT 语句格式

输出示例

执行命令后会得到类似这样的完整 DDL:

sql

DROP TABLE IF EXISTS `class_students`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `class_students` (`student_id` int NOT NULL AUTO_INCREMENT,`student_name` varchar(50) NOT NULL,`gender` enum('男','女') NOT NULL,`age` tinyint unsigned NOT NULL,`birth_date` date DEFAULT NULL,`address` varchar(100) DEFAULT NULL,`phone` varchar(20) DEFAULT NULL,`email` varchar(50) DEFAULT NULL,`enrollment_date` date NOT NULL,`class_id` int NOT NULL,PRIMARY KEY (`student_id`),KEY `idx_class_id` (`class_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;

其他有用选项

  1. 获取更详细的元数据信息:

bash

mysqldump --no-data --tab=/tmp --fields-terminated-by=, --fields-enclosed-by='"' --lines-terminated-by=0x0d0a school_db class_students
  1. 将输出保存到文件:

bash

mysqldump -u root -p --no-data school_db class_students > class_students_ddl.sql

这样导出的 DDL 包含了完整的表结构定义,包括字段类型、约束、索引、存储引擎和字符集等信息,可以完全用于重建相同的表结构。

http://www.lryc.cn/news/2395140.html

相关文章:

  • day15 leetcode-hot100-28(链表7)
  • 阿里云云效对接SDK获取流水线制品
  • Qt 相关 编译流程及交叉编译 部署所遇到的问题总结-持续更新
  • 前端面经 DNSxieyi1
  • 如何通过ES实现SQL风格的查询?
  • ​​知识图谱:重构认知的智能革命​
  • 【计算机网络】4网络层①
  • MATLAB中的table数据类型:高效数据管理的利器
  • Dropout 在大语言模型中的应用:以 GPT 和 BERT 为例
  • CentOS 7 如何安装libsndfile?
  • 基于深度学习的语音识别系统设计与实现
  • gitLab 切换中文模式
  • 133.在 Vue3 中使用 OpenLayers 实现画多边形、任意编辑、遮罩与剪切处理功能
  • 4.8.4 利用Spark SQL实现分组排行榜
  • 40. 自动化异步测试开发之编写异步业务函数、测试函数和测试类(类写法)
  • 【五子棋在线对战】一.前置知识的了解
  • 历年中国科学技术大学计算机保研上机真题
  • 内联盒模型基本概念?——前端面试中的隐形考点剖析
  • HackMyVM-Art
  • 网页前端开发(基础进阶1)
  • const ‘不可变’到底是值不变还是地址不变
  • 如何找到一条适合自己企业的发展之路?
  • Vue-数据监听
  • 当前用户的Git全局配置情况:git config --global --list
  • AI生态警报:MCP协议风险与应对指南(中)——MCP Server运行时安全​​
  • day15 leetcode-hot100-29(链表8)
  • DeepSeek 赋能文化遗产数字化修复:AI 重构千年文明密码
  • MonitorSDK_性能监控(从Web Vital性能指标、PerformanceObserver API和具体代码实现)
  • Spring Boot整合JWT实现认证与授权
  • 在 Linux 系统上连接 GitHub 的方法 (适用2025年)