生成的列不适用于 z/os,但在 LUW 中可以

Generated column doesn't work for z/os while it is ok in 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 服务器中的计算列一样使用它吗?

创建 TABLE 表 1 ( c1 INT 不为空, TS INT NOT NULL 始终作为身份生成 );

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

为此使用触发器。查看 SQL 手册以了解 "create trigger" 命令。 如果您只在插入行时需要它,那么 "before insert trigger" 就足够了。 如果您也想要它进行更改,那么您还需要一个 "update trigger"。

Z/OS 版本中未实现。您可以在 "create table" SQL 语句下的 SQL 手册中找到 "default" 允许的各种选项。有一个选项可以在列上定义 fieldproc,但它不会(也不会做)你想要的(更多信息在管理指南中)。