78 lines
3.5 KiB
Plaintext
78 lines
3.5 KiB
Plaintext
---
|
||
title: 表结构编辑器
|
||
description: 可视化编辑表字段和索引,并在保存前预览 DDL。
|
||
---
|
||
|
||
表结构编辑器用于修改单张表的字段、索引和约束。它适合小范围结构调整,也适合在不手写 DDL 的情况下生成可审查的变更 SQL。
|
||
|
||
<Callout type="info">表结构编辑器目前面向 MySQL、PostgreSQL、SQLite、SQL Server 和 ClickHouse 开启。其他数据库仍可能在结构浏览器中展示 DDL,但当 DBX 无法可靠生成安全变更时,不会显示可视化编辑器。</Callout>
|
||
|
||
## 可以编辑什么
|
||
|
||
| 对象 | 支持操作 |
|
||
| ------ | ------------------------------------------------------------------ |
|
||
| 字段 | 新增、删除、重命名和修改字段;修改类型、长度、默认值、可空性和注释 |
|
||
| 主键 | 添加、修改或移除主键字段 |
|
||
| 索引 | 新增、删除和重建索引;配置索引类型、包含列、WHERE 过滤和注释 |
|
||
| 注释 | MySQL/PostgreSQL 支持字段和索引注释写入 |
|
||
| 列顺序 | 可视化调整列顺序;DBX 会生成对应的 ALTER 语句 |
|
||
|
||
## 编辑器界面
|
||
|
||
表结构编辑器以持久化标签页形式打开,而非模态对话框:
|
||
|
||
- **类型 + 长度分列**:数据类型和长度/精度分离为独立列,配有可搜索的下拉选择器
|
||
- **可调整列宽**:拖拽列边框调整编辑器布局
|
||
- **语法高亮**:SQL 预览使用 Shiki 语法高亮
|
||
- **DDL 能力矩阵**:编辑器了解每种数据库支持的 DDL 操作,仅启用相关控件
|
||
|
||
不同数据库的 DDL 能力不完全一致,DBX 会按当前连接类型生成对应语法。
|
||
|
||
## 工作流
|
||
|
||
<Steps>
|
||
<Step>
|
||
### 打开表结构
|
||
|
||
在侧边栏右键表,选择查看或编辑结构。
|
||
|
||
</Step>
|
||
<Step>
|
||
### 修改字段或索引
|
||
|
||
在可视化界面中添加、修改或删除字段和索引。修改会先暂存在本地。
|
||
|
||
</Step>
|
||
<Step>
|
||
### 查看 SQL 预览
|
||
|
||
保存前检查 DBX 生成的 `ALTER TABLE`、`CREATE INDEX`、`DROP INDEX` 等语句。
|
||
|
||
</Step>
|
||
<Step>
|
||
### 确认执行
|
||
|
||
确认 SQL 没有问题后再应用到数据库。
|
||
|
||
</Step>
|
||
</Steps>
|
||
|
||
<Callout type="warn">删除字段、修改字段类型、修改 NULL 约束都可能影响现有数据。生产环境执行前建议先备份,并确认应用代码是否依赖旧结构。</Callout>
|
||
|
||
## 数据库差异
|
||
|
||
| 数据库 | 说明 |
|
||
| --------------- | ---------------------------------------------------------------------- |
|
||
| MySQL / MariaDB | 支持新增、删除、修改字段,以及新增/删除索引 |
|
||
| PostgreSQL | 支持字段重命名、类型、默认值、NULL 约束和注释变更,以及新增/删除索引 |
|
||
| SQLite | 支持新增字段、删除字段和重命名字段;更复杂的字段修改会提示无法安全处理 |
|
||
| SQL Server | 支持常见单表结构操作 |
|
||
| 其他引擎 | 当 DBX 不显示可视化编辑器时,使用生成 DDL、Schema 对比或手写 SQL |
|
||
|
||
## 使用建议
|
||
|
||
- 小改动可以直接使用表结构编辑器
|
||
- 大规模结构迁移建议生成 SQL 后进入代码仓库审查
|
||
- 多环境同步建议配合 [Schema 对比](/cn/docs/schema-diff)
|
||
- 不确定影响范围时,先通过 [数据库导出](/cn/docs/database-export) 备份
|