第 07 章表结构视图
表结构视图是只读的。要看看、要复制都行,但不能在这里改——
改结构请用查询编辑器手写 DDL。
这一章没有「编辑」按钮
新增列、删列、加索引、改类型、加外键,这些操作在界面上完全不存在。
想改结构,开一个查询标签写 ALTER TABLE。
这个取舍的理由是:图形化的结构编辑器要处理的边界情况极多(数据迁移、默认值、字符集转换……),
而手写 DDL 对一个熟练用户来说又快又准确。
怎么打开
| 方式 | 行为 |
对象树右键表 → 打开结构 | 在新标签打开一个独立的结构标签 |
数据视图状态栏左边的 数据 / 结构 切换 | 在同一个标签内切到结构视图 |
两种方式都可以,看你想同时对比几样东西。
列
图 7-1 结构视图的「列」页。
| # | 元素 | 说明 |
| 1 | 子页签 |
列 / 索引 / 外键 / 触发器 / 建表语句。当前页带下划线。表以外的对象只显示其中一两页。 |
| 2 | 序号 |
列在表里的位置顺序。改列顺序要写 DDL。 |
| 3 | 类型 |
完整类型,包括长度和精度:varchar(255)、decimal(10,2)、enum('a','b')。 |
| 4 | 可空与默认值 |
没有默认值时显示 —;默认值就是 NULL 时显示 NULL。这两者含义不同,所以分开显示。 |
| 5 | 主键 / 自增 / 字符集 |
属于主键和自增的打勾;字符集与排序规则只对文本类型显示,其它类型显示 —。 |
| 6 | 数据 / 结构 切换 |
在同一个标签内切换数据视图和结构视图。也可以让它俩各占一个标签。 |
| 7 | 刷新 |
重新读取结构(⌘R)。在查询编辑器里执行过 DDL 之后,已经打开的结构视图会标上「可能过期」。 |
列页的字段
| 列名 | 说明 |
| 序号 | 列在表中的位置 |
| 列名 | |
| 类型 | 完整类型,含长度与精度 |
| 可空 | 是 / 否 |
| 默认值 | 没有默认值 → —;默认值为 NULL → NULL |
| 主键 | ✓ 表示属于主键 |
| 自增 | ✓ |
| 字符集 / 排序规则 | 仅文本类型显示 |
| 备注 | 列的注释 |
索引与外键
图 7-2 索引页与外键页。
| 索引页字段 | 说明 |
| 索引名 | |
| 类型 | PRIMARY / UNIQUE / 普通 / 全文 / 空间 |
| 包含的列 | 按顺序列出,降序的列标注 desc |
| 基数 | 估算的唯一值数量 |
| 备注 | 索引注释 |
| 外键页字段 | 说明 |
| 约束名 | |
| 本表列 | |
| 引用表 | 库.表,可点击跳转 |
| 引用列 | |
| 删除时 / 更新时 | CASCADE / SET NULL / RESTRICT / NO ACTION |
触发器与建表语句
图 7-3 触发器页与建表语句页。建表语句用等宽字体 + 语法高亮。
| 触发器页字段 | 说明 |
| 名称 | |
| 时机 | BEFORE / AFTER |
| 事件 | INSERT / UPDATE / DELETE |
| 语句 | 触发器体,多行折叠显示,点击展开 |
视图
不是所有对象都有五页。不同对象显示的内容不一样:
| 对象类型 | 显示的子页签 |
| 表 | 列 / 索引 / 外键 / 触发器 / 建表语句(全部五页) |
| 视图 | 列 / 定义(两页),定义页就是创建该视图的完整语句 |
图 7-4 视图的定义页。
结构可能过期时
你在查询编辑器里执行了 DDL(比如 ALTER TABLE ... ADD COLUMN)之后,
已经打开的结构视图内容就不再可靠了。这时视图顶部会出现一条提示:
图 7-5 过期提示条。不自动刷新,避免在你正在看的时候列表跳动。
明确不做
这一章的范围到此为止
- 不在这里新增 / 修改 / 删除列、索引、外键、触发器
- 没有图形化的建表向导
- 没有表之间的 ER 关系图
这些都要手写 DDL,或者用专门的数据库设计工具。