表结构编辑器
表结构编辑器把单表元数据和变更草稿放在持久化标签页中。DBX 会根据数据库 capability 只开放能够可靠生成的操作,并在保存前展示最终 DDL。
打开方式
- 右键表选择查看结构或编辑结构
- 从字段节点直接打开并定位对应字段
- 从索引节点直接打开并定位对应索引
- 从数据表格的表信息区域打开结构标签
- 从对象浏览器或 DDL 入口打开同一张表
编辑器会保留当前标签、滚动位置、列宽和本地字段顺序,便于在结构与数据之间切换。
结构标签
| 标签 | 主要内容 |
|---|---|
| 字段 | 名称、类型、长度/精度、可空、默认值、主键、自增、字符集、排序规则、注释 |
| 索引 | 名称、字段、类型、唯一、包含列、过滤条件、注释和重建入口 |
| 外键 | 本地字段、目标表/字段、ON DELETE、ON UPDATE |
| 触发器 | 触发器元数据、源码和数据库支持的创建/修改/删除 |
| DDL | 当前表定义或驱动生成的结构 SQL |
数据库未提供某类元数据时,对应标签会隐藏、只读或显示能力说明。
字段编辑
根据数据库能力,可以:
- 新增字段,或插入到当前选中字段之后
- 删除、重命名和修改字段
- 修改类型、长度、精度、Scale 和数据库专属长度单位
- 修改
NULL、默认值、主键、自增、字符集、排序规则和注释 - 使用常见默认值快捷选项
- 拖拽字段调整顺序
列重排有两种语义:
- MySQL 等支持物理列顺序的数据库会生成真正的顺序变更 DDL
- 部分数据库只在 DBX 中保存本地显示顺序,不修改数据库物理结构
创建新表时,可以使用设置中的预设字段快速加入常见主键、时间戳或审计字段。
索引、外键与触发器
索引能力按数据库方言开放,例如:
- 创建、删除或重建索引
- 普通、唯一和数据库专属索引类型
- PostgreSQL / SQL Server 等支持的包含列或过滤条件
- 索引注释(数据库支持时)
- 自动生成新索引名称,并允许修改
外键编辑包括字段映射和更新/删除动作。触发器编辑依赖数据库源码读取和安全 DDL 生成能力;不支持直接修改时仍可以查看源码或复制 DDL。
DDL 预览
编辑不会立即写入数据库。保存前,DBX 会根据当前方言生成并高亮:
ALTER TABLE ... ADD/DROP/RENAME/MODIFY COLUMN- 默认值、
NULL、主键和注释变更 CREATE INDEX、DROP INDEX、重建索引- 外键和触发器相关 DDL
- SQLite 等需要重建表时的迁移步骤
可以复制完整 DDL,在代码仓库中审查或交给迁移工具执行。
字段删除、类型转换、收紧
NULL、修改主键、重排物理字段和重建表都可能锁表或丢失数据。生产环境先检查执行计划、锁影响、备份和回滚方案。保存流程
读取最新结构
打开编辑器后确认字段、索引、外键和触发器已经加载完成。其他客户端刚修改过表时先刷新。
创建本地草稿
新增、修改、删除或重排对象。删除操作会以待删除状态显示,尚未执行。
审查 DDL
检查对象限定名、字段类型、默认值、约束、索引和每条语句顺序。
执行并刷新
确认后执行。生产范围会再次进入生产写入确认;成功后重新读取表结构。
方言与能力差异
| 方言/数据库 | 典型行为 |
|---|---|
| MySQL / MariaDB 兼容 | 字段属性、物理重排、主键、索引、外键和注释覆盖较完整 |
| PostgreSQL / Gauss 系兼容 | 字段类型/默认值/可空/注释、索引包含列/过滤、外键等按方言生成 |
| SQLite | 部分复杂字段变更通过安全的表重建策略实现 |
| DuckDB | 支持常见字段与索引操作,但能力不同于 SQLite |
| SQL Server | 支持字段和索引变更,部分默认约束、包含列和过滤索引使用专属语法 |
| Oracle / 达梦等 | 使用 Oracle 风格字段、注释和索引 DDL;整数长度等无意义选项会禁用 |
| ClickHouse / Manticore / InfluxDB 等 | 只开放对应实现已验证的子集 |
| JDBC/Agent | 根据识别出的方言映射;无法可靠识别时保持只读 |
不要根据“能连接”推断“所有 DDL 都能编辑”。当前范围以 数据库支持 和编辑器实际控件为准。
并发与恢复
- 编辑草稿基于打开时读取的元数据,不会自动合并其他客户端的结构变更
- 执行失败后,数据库可能已经成功执行前面的部分语句
- SQLite 重建和多语句 DDL 的原子性取决于数据库和驱动
- 刷新会重新读取结构,未保存草稿可能需要先确认放弃
- 只读连接会阻止保存;生产连接每次写入都需要明确确认