跳转至

表对话框

表格对话框

使用“表”对话框创建或修改表。

“表”对话框通过以下对话框选项卡组织表的开发:“常规”,“列”,“约束”,“高级”,“参数”和“安全性”。 “ SQL”选项卡显示由对话框选择生成的SQL代码。

表格对话框的常规选项卡

使用“常规”选项卡中的字段来标识表:

  • 使用“名称”字段为表添加描述性名称。表不能与同一架构中的任何现有表,序列,索引,视图,外部表或数据类型具有相同的名称。指定的名称将显示在sdAdmin树控件中。这是必填栏。

  • 从“所有者”字段的下拉列表框中选择表的所有者。默认情况下,表的所有者是创建表的角色。

  • 从“架构”字段中的下拉列表框中选择表将驻留在其中的架构的名称。

  • 使用“表空间”字段中的下拉列表框来指定将在其中存储表的表空间。

  • 如果要创建分区表,请切换到“是”。

  • 将有关表的注释存储在“注释”字段中。

单击列选项卡以继续。

表对话框的列选项卡

使用“从表继承”旁边的下拉列表框来指定任何父表。该表将继承所选父表中的列。在“从表继承”字段中单击,以从下拉列表中选择一个表名。重复添加其他父表。通过单击父名称左侧的x来删除选定的表。请注意,继承的列名称和数据类型在当前对话框中不可编辑。必须在父级上修改它们。

单击“添加”图标(+),以在“列”表中指定列的名称及其数据类型:

  • 使用“名称”字段为该列添加描述性名称。

  • 使用数据类型字段中的下拉列表框选择列的数据类型。这可以包括数组说明符。有关SeaboxSQL支持的数据类型的更多信息,请参阅核心文档的第8章。

  • 如果启用,请使用“长度/精度”和“比例”字段来指定数值中的最大有效位数或文本值中的最大字符数。

  • 切换到“是”位置以在列字段中要求一个值。

  • 换到“是”位置以指定列为主键约束。

单击添加图标(+)添加其他列;要丢弃一列,请单击该行左侧的垃圾桶图标,然后在“删除行”弹出窗口中确认删除。

单击“约束”选项卡以继续。

表对话框约束选项卡

使用“约束”选项卡中的字段来提供表或列约束。可选的约束子句指定新行或更新行必须满足的约束(测试)才能使INSERT或UPDATE操作成功。通过选择“约束”面板上的以下选项卡之一,选择适当的约束类型:

标签名称 约束
Primary Key 为表中的每一行提供唯一的标识符。
Foreign Key 维护两个表之间的参照完整性。
Check 要求数据在插入或修改之前满足表达式或条件。
Unique 确保一列或一组列中包含的数据在表的所有行中都是唯一的。
Exclude 保证如果在指定的列或表达式上比较任何两行(使用指定的运算符),则至少有一个运算符比较将返回false或null。

要为表添加主键,请选择“主键”选项卡,然后单击“添加”图标(+)。要定义主键,请单击“删除”图标左侧的“编辑”图标。将打开一个类似于“主键”对话框的对话框(可通过在sdAdmin树控件中的“约束”上单击鼠标右键来访问)。

使用“常规”选项卡中的字段来标识主键:

  • 使用“名称”字段为主键约束添加描述性名称。该名称将显示在sdAdmin树控件中。

  • 在注释字段中提供有关主键的注释。

单击“定义”选项卡以继续。

表对话框主键约束定义

使用“定义”选项卡中的字段来定义主键约束:

  • 在“列”字段内单击,然后从下拉列表框中选择一个或多个列名称。要删除选择,请单击列名称左侧的x。主键约束应不同于为同一表定义的任何唯一约束;约束选择的列必须是不同的。

  • 从表空间字段的下拉列表框中选择主键约束将驻留在其中的表空间的名称。

  • 使用填充因子字段为表和索引指定填充因子。表格的填充因子是10到100之间的百分比。默认值为100(完整包装)。

  • 切换到“是”位置以指定约束的时间可推迟,并且可以推迟到语句结束。默认为“否”。

  • 如果启用,切换到“是”位置以指定将约束的时间推迟到语句的末尾。默认为“否”。

表对话框外键约束

要添加外键约束,请选择“外键”选项卡,然后单击“添加”图标(+)。要定义约束,请单击“删除”图标左侧的“编辑”图标。将打开一个与外键对话框类似的对话框(通过右键单击sdAdmin树控件中的Constraints进行访问)。

使用“常规”选项卡中的字段来识别外键约束:

  • 使用“名称”字段为外键约束添加描述性名称。该名称将显示在sdAdmin树控件中。

  • 在注释字段中提供有关外键的注释。

单击“定义”选项卡以继续。

表对话框外键约束定义

使用“定义”选项卡中的字段来定义外键约束:

  • 切换到“是”位置以指定约束的时间可推迟,并且可以推迟到语句结束。默认为“否”。

  • 如果启用,切换到“是”位置以指定将约束的时间推迟到语句的末尾。默认为“否”。

移动“匹配类型”开关,以指定由约束强制实施的匹配类型:

  • 选择Full表示如果任何列为空,则多列外键的所有列都必须为空。如果所有列均为空,则不需要该行在引用表中具有匹配项。

  • 选择简单以指定单个外键列可以为空;如果任何列为null,则不需要该行在引用表中具有匹配项。

  • 将修改保存到对话框时,将Validated开关移到Yes位置,指示服务器验证现有表内容(针对外键或检查约束)。

  • 将自动FK索引开关移到“否”位置以禁用自动索引功能。

  • 如果“自动FK索引”开关位于“是”位置,则“覆盖索引”旁边的字段将生成索引名称。或者,此字段被禁用。

单击列选项卡以继续。

表对话框外键约束列

使用“列”选项卡中的字段来指定一个或多个参考列。 外键约束要求表的一个或多个列必须仅包含与被引用表的行的被引用列中的值匹配的值:

  • 使用“本地”列旁边的下拉列表框可以指定当前表中将与外部表进行比较的列。

  • 使用“引用”旁边的下拉列表框可以指定比较列所在的表的名称。

  • 使用“引用”旁边的下拉列表框在外部表中指定列。

单击添加图标(+)将一列添加到列表;重复上述步骤,然后单击“添加”图标(+)添加其他列。要丢弃条目,请单击条目左侧的垃圾桶图标,然后在“删除行”弹出窗口中确认删除。

单击操作选项卡以继续。

表对话框外键约束动作

使用“操作”选项卡上的下拉列表框来指定与外键约束相关的行为,这些行为将在表中的数据被更新或删除时执行:

  • 使用更新时旁边的下拉列表框选择更新表中数据时将执行的操作。

  • 使用“删除时”旁边的下拉列表框,选择删除表中的数据时将执行的操作。

支持的操作是:

标签名称 约束
NO ACTION 产生错误,指示删除或更新将创建外键约束冲突。 如果推迟约束,则如果仍然存在任何引用行,则会在约束检查时产生此错误。 这是默认值。
RESTRICT 引发错误,指示删除或更新将导致违反外键约束。 这与NO ACTION相同,除了支票不可延期。
CASCADE 删除任何引用已删除行的行,或将引用列的值分别更新为被引用列的新值。
SET NULL 将引用列设置为null。
SET DEFAULT 将引用列设置为其默认值。 被引用的表中必须有一行与默认值匹配的行(如果它们不为null),否则该操作将失败。

表对话框检查约束

要添加检查约束,请选择面板上的“检查”选项卡,然后单击“添加”图标(+)。 要定义检查约束,请单击“删除”图标左侧的“编辑”图标。 将打开一个类似于“检查”对话框的对话框(可通过右键单击sdAdmin树控件中的“约束”来访问)。

使用“常规”选项卡中的字段来标识检查约束:

  • 使用“名称”字段为检查约束添加描述性名称。 该名称将显示在sdAdmin树控件中。

  • 在“注释”字段中提供有关检查约束的注释。

单击“定义”选项卡以继续。

表对话框检查约束定义

使用“定义”选项卡中的字段来定义检查约束:

  • 在“检查”字段中提供行必须满足的表达式。这是必填栏。

  • 切换到“是”位置以指定该表的子项不会自动继承此约束。默认值为No,表示约束将被任何子代继承。

  • 切换到“否”位置以跳过对现有数据的验证;该约束可能不适用于表中的所有行。默认值为是。

表对话框的唯一约束

要添加唯一约束,请选择面板上的“唯一”选项卡,然后单击“添加”图标(+)。要定义约束,请单击“删除”图标左侧的“编辑”图标。将打开一个类似于“唯一性”约束对话框的对话框(可通过右键单击sdAdmin树控件中的“约束”来访问)。

使用“常规”选项卡中的字段来标识唯一约束:

  • 使用“名称”字段为唯一性约束添加描述性名称。该名称将显示在sdAdmin树控件中。

  • 在注释字段中提供有关唯一约束的注释。

单击“定义”选项卡以继续。

表对话框的唯一约束定义

使用“定义”选项卡中的字段来定义唯一约束:

  • 在“列”字段内单击,然后从下拉列表框中选择一个或多个列名称。要删除选择,请单击列名称左侧的x。唯一约束应不同于为同一表定义的主键约束;约束选择的列必须是不同的。

  • 从表空间字段的下拉列表框中选择唯一约束将驻留在其中的表空间的名称。

  • 使用填充因子字段为表和索引指定填充因子。表格的填充因子是10到100之间的百分比。默认值为100(完整包装)。

  • 切换到“是”位置以指定约束的时间可推迟,并且可以推迟到语句结束。默认为“否”。

  • 如果启用,请移动延期?切换到“是”位置以指定将约束的时间推迟到语句的末尾。默认为“否”。

表对话框排除约束

要添加排除约束,请选择面板上的“排除”选项卡,然后单击“添加”图标(+)。要定义约束,请单击“删除”图标左侧的“编辑”图标。将打开一个类似于“排除约束”对话框的对话框(可通过右键单击sdAdmin树控件中的“约束”来访问)。

使用“常规”选项卡中的字段来标识排除约束:

  • 使用“名称”字段为排除约束提供描述性名称。该名称将显示在sdAdmin树控件中。

  • 在注释字段中提供有关排除约束的注释。

单击“定义”选项卡以继续。

表对话框排除约束定义

使用“定义”选项卡中的字段来定义排除约束:

  • 使用表空间旁边的下拉列表框选择与排除约束关联的索引将驻留在其中的表空间。

  • 使用Access方法旁边的下拉列表框来指定在实现排除约束时将使用的索引类型:

    • 选择要点以指定GiST索引(默认值)。

    • 选择spgist以指定空间分区的GiST索引。

    • 选择btree以指定B树索引。

    • 选择哈希以指定哈希索引。

  • 使用“填充因子”字段为表和关联的索引指定填充因子。填充因子是10到100之间的百分比。默认值为100(完整包装)。

  • 切换到“是”位置以指定约束的时间可推迟,并且可以推迟到语句结束。默认为“否”。

  • 如果启用,请移动延期?切换到“是”位置以指定将约束的时间推迟到语句的末尾。默认为“否”。

  • 使用“约束”字段可提供一个条件,必须满足该条件才能将行包括在表中。

单击列选项卡以继续。

表对话框排除约束列

使用“列”选项卡中的字段可以指定约束所适用的列。使用“列”旁边的下拉列表框选择一个列,然后单击“添加”图标(+)提供该列上操作的详细信息:

  • 在“列”下拉列表框中所做的选择将填充“列”字段。

  • 如果适用,请使用Operator类中的下拉列表框来指定该列的索引将使用的operator类。

  • 将DESC开关移至DESC以指定降序排列。默认值为ASC,它指定升序排列。

  • 将NULL顺序开关移到LAST可以定义NULL的升序排列。默认值为FIRST,它指定降序。

  • 使用运算符旁边的下拉列表可以指定比较运算符或条件运算符。

单击高级选项卡以继续。

![表格对话框高级标签(graph/table_advanced.png)

使用“高级”选项卡中的字段来定义表的高级功能:

  • 使用“类型”旁边的下拉列表框从指定的复合类型复制表结构。请注意,如果删除类型表(使用DROP TYPE…CASCADE),则将删除该表。

  • 使用填充因子字段为表格指定填充因子。表格的填充因子是10到100之间的百分比。默认值为100(完整包装)。

  • 使用Toast元组目标字段来设置表的toast_tuple_target存储参数。 toast_tuple_target值以字节为单位,最小值为128。仅对于SeaboxSQL版本> = 11启用此字段。

  • 使用“并行工作程序”字段来设置表的parallel_workers存储参数。 parallel_workers设置应用于辅助表并行扫描的工作程序数。

  • 移动有OID吗?切换到“是”位置以指定表中的每一行都有一个系统分配的对象标识符。默认为“否”。

  • 切换到“是”位置以禁用该表的日志记录。写入未记录表的数据不会写入预写日志。在未记录表上创建的所有索引也会自动取消记录。默认为“否”。

使用“喜欢”框中的字段来指定现有表的哪些属性,表将从该属性中自动复制列名,数据类型和非空约束;保存新表或修改后的表后,对原始表所做的任何更改都不会应用于新表。

  • 使用“关系”旁边的下拉列表框选择参考表。

  • 切换到是位置以复制默认值。

  • 切换到“是”位置以复制表和列约束。

  • 切换到“是”位置以复制索引。

  • 切换到是位置以复制存储设置。

  • 切换到“是”位置以复制评论。

单击分区选项卡以继续。

表对话框分区选项卡

使用“分区”选项卡中的字段来创建表的分区:

  • 从“分区类型”选择框中选择一个分区类型。共有3个选项;范围,列表和哈希。

使用“分区键”面板定义分区键。单击添加图标(+)添加每个分区键选择:

  • 在“密钥类型”字段中选择一个分区密钥类型。

  • 如果为“关键类型”字段选择了“列”选项,则在“列”字段中选择一个分区列。

  • 如果为“密钥类型”字段选择了“表达式”选项,则在“表达式”字段中指定表达式。

使用“分区”面板定义表的分区。单击添加图标(+)添加每个分区:

  • 移动Operation开关以附加以附加分区,默认情况下它是创建的。

  • 使用“名称”字段添加分区的名称。

  • 如果分区类型为“范围”或“列表”,则将启用“默认”字段。

  • 如果分区类型为“范围”,则将启用“从”和“到”字段。

  • 如果分区类型为“列表”,则将启用“输入”字段。

  • 如果分区类型为哈希,则将启用“模数”和“余数”字段。

用户可以创建一个分区并将其定义为分区表。单击编辑图标以展开分区的属性。使用“分区”选项卡将该分区创建为分区表。

  • 如果要创建分区表,请切换到“是”。

  • 从“分区类型”选择框中选择一个分区类型。

  • 使用“分区键”面板定义分区键。

单击参数选项卡以继续。

表对话框参数选项卡

使用嵌套在“参数”选项卡中的选项卡可以指定VACUUM和ANALYZE阈值。使用“表格”选项卡和“吐司表格”选项卡自定义表格和关联的吐司表格的值:

  • 移动自定义自动真空?切换到“是”位置以在表上执行自定义维护并在“真空”表中选择值。真空表提供了维护操作的默认值。

  • 设置为未设置将重置autovacuum_enabled。

在“标签”列中列出的每个指标的“值”列中提供自定义值。

单击安全性选项卡以继续。

表格对话框的“安全性”选项卡

使用“安全性”选项卡分配权限并定义安全性标签。

使用“权限”面板为角色分配权限。单击添加图标(+)设置数据库对象的特权:

  • 从“受赠方”字段的下拉列表框中选择角色的名称。

  • 在“权限”字段内单击。选中一个或多个特权左侧的框,以将所选特权授予指定用户。

  • 当前用户(授予权限的默认授予者)显示在“授予者”字段中。

单击添加图标(+)分配其他权限;要放弃特权,请单击行左侧的垃圾桶图标,然后在“删除行”弹出窗口中确认删除。

使用“安全标签”面板可以定义应用于该功能的安全标签。单击添加图标(+)添加每个安全标签选择:

  • 在提供者字段中指定安全标签提供者。必须加载指定的提供者,并且必须同意提议的标签操作。

  • 在“安全标签”字段中指定一个安全标签。给定标签的含义由标签提供者决定。 SeaboxSQL对标签提供者是否必须解释或如何解释安全标签没有任何限制;它仅提供了一种存储它们的机制。

单击添加图标(+)分配其他安全标签;要丢弃安全标签,请单击行左侧的垃圾桶图标,然后在“删除行”弹出窗口中确认删除。

单击“ SQL”选项卡以继续。

您在“表”对话框中的输入会生成一个SQL命令(请参见下面的示例)。使用“ SQL”选项卡进行检查;重新访问或切换选项卡以对SQL命令进行任何更改。

表格对话框的sql标签

  • 单击信息按钮(i)以访问联机帮助。

  • 单击保存按钮以保存工作。

  • 单击取消按钮退出而不保存工作。

  • 单击重置按钮以恢复配置参数。