79 lines
2.7 KiB
Plaintext
79 lines
2.7 KiB
Plaintext
---
|
||
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 文件建议妥善保存,避免提交到公开代码仓库
|