dbx/docs/content/docs/database-export.cn.mdx

79 lines
2.7 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: 数据库导出
description: 将数据库结构和数据导出为 SQL 文件,用于备份、迁移或创建测试数据集。
---
数据库导出会把表结构和表数据写入 SQL 文件。它适合在执行高风险操作前备份、迁移小型数据库,或为开发测试准备可复现的数据集。
## 导出内容
| 内容 | 说明 |
| -------- | ----------------------------------------------- |
| 表结构 | `CREATE TABLE`、字段、主键、索引、约束等 DDL |
| 表数据 | 以 `INSERT` 语句形式导出 |
| 批量插入 | 多行合并为一条 `INSERT`,减少文件体积和导入成本 |
| 对象 | 数据库可提供源码时导出视图、存储过程和函数 |
示例:
```sql
INSERT INTO users (id, name, email) VALUES
(1, '张三', 'zhangsan@example.com'),
(2, '李四', 'lisi@example.com'),
(3, '王五', 'wangwu@example.com');
```
## 使用流程
<Steps>
<Step>
### 选择连接和数据库
选择要导出的连接和数据库,确认当前环境无误。
</Step>
<Step>
### 设置导出选项
选择是否包含结构、数据和数据库对象。可以导出全部表,也可以只导出选中的表。
</Step>
<Step>
### 选择保存位置
选择 `.sql` 文件保存路径。
</Step>
<Step>
### 开始导出
DBX 会生成 SQL 文件,并展示当前对象、进度、行数、错误和取消状态。
</Step>
</Steps>
## 批量与选择
DBX 会分批读取表数据,并把生成的 `INSERT` 语句写入输出文件。如果没有设置批大小,默认每批 1000 行。
选择部分表导出时DBX 会先过滤表列表,再生成 DDL 和数据。视图、存储过程、函数等对象只会在启用对象导出且没有限定表子集时一起导出。
<Callout type="info">MySQL 导出会在表内容前写入 `SET FOREIGN_KEY_CHECKS = 0`,并在文件末尾重新启用。</Callout>
## 取消与错误
导出可以在对象之间或行批次之间取消。如果某张表或某个对象无法导出DBX 会在 SQL 文件中写入包含错误的注释,并在可能的情况下继续导出剩余内容。
## 导入导出文件
导出的 `.sql` 文件可以通过 [SQL 文件执行](/cn/docs/sql-file) 导入到数据库中。
<Callout type="warn">导出文件可能包含敏感数据、账号信息、业务标识或用户隐私。分享前请确认是否需要脱敏。</Callout>
## 使用建议
- 高风险 Schema 操作前先导出备份
- 迁移前先在测试库验证导入结果
- 大型生产库或需要完整备份的场景更适合使用数据库原生备份工具
- 导出的 SQL 文件建议妥善保存,避免提交到公开代码仓库