Gbase8s CREATE ROW TYPE 语句1

使用 CREATE ROW TYPE 语句创建命名的 ROW 类型。
该语句是 SQL ANSI/ISO 标准的扩展。
用法
CREATE ROW TYPE 语句声明已命名的 ROW 数据类型并在当前系统目录中注册。可以将已命名
的 ROW 数据类型分配给表或视图,以创建类型表或类型视图。您也可以将列定义为命名 ROW
类型。尽管您能分配一个 ROW 类型到表来定义表模式,但是 ROW 数据类型与表行不同。表行
由一个或多个列构成;ROW 数据类型由一个或多个字段构成,使用 Field Definition 语法定义。
已命名的 ROW 数据类型在大多数您可指定数据类型的上下文中有效。已命名的 ROW 类型是强
类型。没有两个已命名的 ROW 类型是相等的,即使它们结构上相等。
没有标识符的 ROW 类型称为 unnamed ROW 类型。任何两个未命名 ROW 类型被认为是相等的
(如果它们结构上相等)。有关更多信息,请参阅 ROW 数据类型 。
在命名 ROW 类型列上的特权与任何其它列上的特权相同。有关更多信息,请参阅 表级权限。
(要查看列上拥有的特权,请检查 syscolauth 系统目录表,该系统目录表在 《GBase 8s SQL 指
南:参考》 中有描述。)
如果您包含可选的 IF NOT EXISTS 关键字,则当指定名称的已命名的 ROW 已经在当前数据库中
注册时,数据库服务器不采取操作(而非向应用程序发送异常)。
继承和命名 ROW 类型:
已命名的 ROW 类型属于继承层次结构,作为子类型或超类型。使用 CREATE ROW TYPE 语句
中的 UNDER 子句将已命名的 ROW 数据类型作为现有的 ROW 数据类型的子类型创建。
超类型必须也是已命名的 ROW 数据类型。如果在现有的超类型下创建已命名的 ROW 数据类
型,那么新的类型名称 row_type 称为子类型的名称。
当将命名 ROW 类型创建为子类型时,子类型继承超类型的所有字段。另外,当创建此子类型时,
您可以向其添加新的字段。新的字段单独特定于子类型。
不能将继承层次结构中的 ROW 类型替换其超类型或子类型。例如,考虑 person_t 是超类型且
employee_t 是子类型的类型层次结构。如果列是类型 person_t ,则该列仅能包含 person_t 数据。
它不能包含 employee_t 数据。同样地,如果列是类型 employee_t ,则列仅能包含 employee_t 数
据。它不能包含 person_t 数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值