暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBae 8s SQL 指南:语法_5. 其它语法段_5.2 集合派生表 (7)

GBASE数据库 2022-05-12
145

产生集合派生表的 Row 类型
如果没有指定派生列名,那么数据库服务器的行为取决于基本集合元素的数据类型。
虽然集合派生表看起来包含单独的数据类型的列,但这些列实际上是 ROW 数据类型的字段。
ROW 类型的数据类型和列名取决于几个元素。
如果基础集合表达式元素的数据类型是 type,那么数据库服务器通过以下规则来确定集合派生表
的 ROW 类型:
• 如果 type 是 ROW 数据类型,而且没有指定派生列的列表,那么集合派生表的 ROW 类
型就是 type。
• 如果 type 是 ROW 数据类型,而且指定了派生列的列表,那么集合派生表的 ROW 类型
就是未命名的 ROW 类型,其列数据类型和 type 相同,列名从派生列的列表中获取。
• 如果 type 不是 ROW 数据类型,那么集合派生表的 ROW 类型就是未命名的 ROW 类
型,它包含一个 type 列,并且名称指定在派生列的列表中。如果不能指定名称,数据库服
务器会为列分配一个取决于实现的名称。
下表给出的引申示例举例说明了这些规则。该表使用以下模式为例:
CREATE ROW TYPE person (name CHAR(255), id INT);
CREATE TABLE parents
(
name CHAR(255),
id INT,
children LIST (person NOT NULL)
);
CREATE TABLE parents2
(
name CHAR(255),
id INT,
children_ids LIST (INT NOT NULL)
);

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论