生成的列不适用于 z/OS,而在 LUW 中正常



以下 DDL 对 LUW 有效。

CREATE TABLE three_a(
c1   INTEGER NOT NULL,
c2   INTEGER NOT NULL GENERATED ALWAYS AS c1 + 10
)

但它对 z/OS 无效:

知道如何实现GENERATED ALWAYS以像SQL Server中的计算列一样使用它吗?

它未在 Z/OS 版本中实现。您可以在 SQL 手册的"创建表"SQL 语句下找到"默认"允许的各种选项。有一个选项可以在列上定义 fieldproc,但它不会(并且执行(您想要的(更多内容见管理指南(。

创建表 表1 ( c1 整数不为空, TS INT 不为 NULL 始终作为标识生成 );

定义 ROWID 类型(而不是 INT(时没有"AS IDENTITY">

为此使用触发器。查看 SQL 手册中的"创建触发器"命令。 如果您仅在插入行时需要它,那么"在插入触发器之前"就足够了。 如果您也希望它进行更改,那么您还需要一个"更新触发器"。

相关内容

  • 没有找到相关文章

最新更新