如何在DB2中创建ROWID列?
我试过:如何在DB2中创建ROWID列?,db2,Db2,我试过: CREATE TABLE rowid_type ( col1 ROWID NOT NULL GENERATED ALWAYS, col2 int ); 错误: 错误:db2sql错误:SQLCODE=-104,SQLSTATE=42601,SQLERRMC=generatedalways;col1 ROWID不为空;,驱动器=4.14.111 SQLState:42601 错误代码:-104 编辑 我将此链接转介至: 它表明: CREATE TABLE EMPLO
CREATE TABLE rowid_type
(
col1 ROWID NOT NULL GENERATED ALWAYS,
col2 int
);
错误:
错误:db2sql错误:SQLCODE=-104,SQLSTATE=42601,SQLERRMC=generatedalways;col1 ROWID不为空;,驱动器=4.14.111
SQLState:42601
错误代码:-104
编辑
我将此链接转介至:
它表明:
CREATE TABLE EMPLOYEE
(EMP_ROWID ROWID NOT NULL GENERATED ALWAYS,
EMPNO SMALLINT,
NAME CHAR(30),
SALARY DECIMAL(7,2),
WORKDEPT SMALLINT);
编辑2
- 产品名称:DB2/LINUX8664
- 版本:10.5.0.5
CREATE TABLE rowid_type
(
col1 int NOT NULL GENERATED ALWAYS AS IDENTITY,
col2 int
);
还有几个选项可用,如设置开始和停止值。有关详细信息,请参阅。我希望
始终作为标识生成?您添加的链接是针对DB2forz/OS的,错误可能来自DB2LUW这里有一些严重的警告限制了ROWID
类型(在文档中提到)的有用性。特别是,由于该值可以在reorg上重新分配,因此只有当您有一个索引的唯一键开始时,它才真正有用……我现在感到困惑。ROWID是一种数据类型吗?取决于您的DB2版本、平台和配置。大多数用户使用INT或其他数字类型,然后生成标识。您使用的是z/OS、LUW还是i?产品名称:DB2/LINUXX8664,版本:10.5.0.5所以您使用的是DB2LUW,但您阅读或链接的文档是针对另一个产品的,DB2forz/OS。我建议使用回答中显示的INT
数据类型,因为DB2LUW没有ROWID类型。很抱歉给你带来了困惑。