命名的 ROW 数据类型必须使用名称进行声明。此 SQL 标识在同一个数据库内的数据类型名称中必须唯一。
(未命名 ROW 类型是包含字段但没有任何用户定义的名称的 ROW 类型。)只有命名 ROW 类型支持数据类型继承。有关更多信息,请参阅 ROW 数据类型。
必须通过使用 SQL 的 CREATE ROW TYPE 语句在数据库中声明并注册新的命名 ROW 类型。命名 ROW 类型的定义存储在 sysxtdtypes 系统目录表中。
ROW 数据类型的字段可以是任何内置数据类型或 UDT,但 ROW 类型的 TEXT 或 BYTE 字段只在类型表中有效。如果要在 CREATE TABLE 或 ALTER TABLE 语句中将 ROW 类型指定给列,那么其元素不能是 TEXT 或 BYTE 数据类型。
可以将同一个表的不超过 195 列命名为 ROW 类型。
有关这些 SQL 语法语句的详细信息,请参阅 GBase 8s SQL 指南:语法。有关如何创建和使用命名 ROW 类型的示例,请参阅《GBase 8s 数据库设计和实现指南》。
name_t (lname CHAR(15), initial CHAR(1), fname CHAR(15)) emp_t (lname CHAR(15), initial CHAR(1), fname CHAR(15))如果两个操作数是不同的命名 ROW 类型,那么布尔等式条件(例如 name_t = emp_t)的求值结果始终是 FALSE。
命名 ROW 类型可以是类型继承层次结构的一部分。一种命名 ROW 类型可以是另一种命名 ROW 类型的父代(或超类型)。层次结构中的子类型继承其超类型的所有属性。GBase 8s SQL 指南:语法 和《GBase 8s 数据库设计和实现指南》中的 CREATE ROW TYPE 语句中说明了类型继承。
作为继承层次结构一部分的表必须是类型表。类型表是已指定命名 ROW 类型的表。有关用来创建类型表的语法,请参阅 GBase 8s SQL 指南:语法 中的 CREATE TABLE 语句。在该节中还说明了表继承及其与类型继承的关系。有关如何创建和使用类型表的信息,请参阅《GBase 8s 数据库设计和实现指南》。