使用 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 包含了完整的表结构定义,包括字段类型、约束、索引、存储引擎和字符集等信息,可以完全用于重建相同的表结构。

相关推荐
Mike的AI工坊17 小时前
[知识点记录]SQLite 数据库和MySQL 数据库有什么区别?
数据库·mysql·sqlite
大春儿的试验田17 小时前
MySQL 8 窗口函数详解
数据库·mysql·mysql8·窗口函数
lifallen17 小时前
深入了解Flink核心:Slot资源管理机制
大数据·数据结构·数据库·算法·flink·apache
一百天成为python专家18 小时前
python爬虫之selenium库进阶(小白五分钟从入门到精通)
开发语言·数据库·pytorch·爬虫·python·深度学习·selenium
意疏18 小时前
【MySQL基础】MySQL核心操作全解析
数据库·mysql
凯子坚持 c19 小时前
Redis 核心概念解析:从渐进式遍历、数据库管理到客户端通信协议
数据库·redis·bootstrap
关关长语1 天前
Windows 安装配置解压版Mysql8.4.5
运维·windows·mysql
小蒜学长1 天前
汽车专卖店管理系统的设计与实现(代码+数据库+LW)
java·数据库·spring boot·后端·汽车
柏油1 天前
MySQL InnoDB 后台线程
数据库·后端·mysql
老华带你飞1 天前
社区互助|基于SSM+vue的社区互助平台的设计与实现(源码+数据库+文档)
java·前端·数据库·vue.js·小程序·毕设·社区互助平台