DBX

表结构编辑器

表结构编辑器把单表元数据和变更草稿放在持久化标签页中。DBX 会根据数据库 capability 只开放能够可靠生成的操作,并在保存前展示最终 DDL。

打开方式

  • 右键表选择查看结构编辑结构
  • 从字段节点直接打开并定位对应字段
  • 从索引节点直接打开并定位对应索引
  • 从数据表格的表信息区域打开结构标签
  • 从对象浏览器或 DDL 入口打开同一张表

编辑器会保留当前标签、滚动位置、列宽和本地字段顺序,便于在结构与数据之间切换。

结构标签

标签主要内容
字段名称、类型、长度/精度、可空、默认值、主键、自增、字符集、排序规则、注释
索引名称、字段、类型、唯一、包含列、过滤条件、注释和重建入口
外键本地字段、目标表/字段、ON DELETEON UPDATE
触发器触发器元数据、源码和数据库支持的创建/修改/删除
DDL当前表定义或驱动生成的结构 SQL

数据库未提供某类元数据时,对应标签会隐藏、只读或显示能力说明。

字段编辑

根据数据库能力,可以:

  • 新增字段,或插入到当前选中字段之后
  • 删除、重命名和修改字段
  • 修改类型、长度、精度、Scale 和数据库专属长度单位
  • 修改 NULL、默认值、主键、自增、字符集、排序规则和注释
  • 使用常见默认值快捷选项
  • 拖拽字段调整顺序

列重排有两种语义:

  • MySQL 等支持物理列顺序的数据库会生成真正的顺序变更 DDL
  • 部分数据库只在 DBX 中保存本地显示顺序,不修改数据库物理结构

创建新表时,可以使用设置中的预设字段快速加入常见主键、时间戳或审计字段。

索引、外键与触发器

索引能力按数据库方言开放,例如:

  • 创建、删除或重建索引
  • 普通、唯一和数据库专属索引类型
  • PostgreSQL / SQL Server 等支持的包含列或过滤条件
  • 索引注释(数据库支持时)
  • 自动生成新索引名称,并允许修改

外键编辑包括字段映射和更新/删除动作。触发器编辑依赖数据库源码读取和安全 DDL 生成能力;不支持直接修改时仍可以查看源码或复制 DDL。

DDL 预览

编辑不会立即写入数据库。保存前,DBX 会根据当前方言生成并高亮:

  • ALTER TABLE ... ADD/DROP/RENAME/MODIFY COLUMN
  • 默认值、NULL、主键和注释变更
  • CREATE INDEXDROP 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 的原子性取决于数据库和驱动
  • 刷新会重新读取结构,未保存草稿可能需要先确认放弃
  • 只读连接会阻止保存;生产连接每次写入都需要明确确认

使用建议