【发布时间】:2018-10-03 14:19:32
【问题描述】:
以下 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 中的计算列一样使用它吗?
【问题讨论】:
标签: db2-zos
以下 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 中的计算列一样使用它吗?
【问题讨论】:
标签: db2-zos
在 Z/OS 版本中没有实现。您可以在 SQL 手册中的“create table”SQL 语句下找到“default”允许的各种选项。有一个选项可以在列上定义 fieldproc,但它不会(并且做)您想要的(在管理指南中有更多信息)。
【讨论】:
创建表 Table1 ( c1 INT 非空, TS INT NOT NULL 始终作为标识生成 );
ROWID 类型(而不是 INT)是在没有“AS IDENTITY”的情况下定义的
【讨论】:
为此使用触发器。查看“创建触发器”命令的 SQL 手册。 如果您仅在插入行时需要它,那么“在插入触发器之前”就足够了。 如果您也希望它进行更改,那么您还需要一个“更新触发器”。
【讨论】: