【发布时间】:2020-12-07 14:12:36
【问题描述】:
我想创建一个虚拟列,将两列连接到 1。我的尝试是:
--result sqlstate 42601 -104 (Token not valid: (. Valid token: IDENTITY)
alter table schema.table
add column name1_v generated always as (trim(name1) || ' ' || trim(vt_alt))
add column vtKuTx_v generated always as (trim(vtKuTx) || ' ' || trim(vt_alt))
;
这应该根据文档工作。 (https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_73/db2/rbafzpdf.pdf?view=kc)(第 851 页)。 有人知道如何完成这项工作吗?
提前致谢。
编辑: 我仔细检查了它。这也不起作用。
create or replace table table.schema (
number int default 2,
square int generated always as (number * number)
);
【问题讨论】:
-
错误信息是什么?
-
令牌无效:(。有效令牌:IDENTITY
-
i系列的版本是多少?
-
使用 Db2-for-i 时,记录了以下限制“仅当列具有 ROWID 数据类型(或基于 ROWID 数据类型的不同类型)时,才能指定 GENERATED, column 是标识列,指定标识选项,指定 as-row-transaction-timestamp-clause,指定 as-row-transaction-start-id-clause,或者该列是行更改时间戳。"跨度>
-
我在 7.2 和 7.4 上进行了测试。错误消息的值略有不同。 7.4 等待一个特殊的寄存器 7.2 一个身份。