在 DB2 中更改主键序列('Default' 到 'Always')
Alter primary key sequence( 'Default' to 'Always') in DB2
我在 DB2 中创建了以下 table。由于序列是GENERATED BY DEFAULT
,所以可以在table中插入主键(因为主键是在table创建后用alter添加的),并且有重复值的机会。解决方案是使用 GENERATED BY ALWAYS
创建序列。现在我在 table 中有数据,我想将其从 GENERATED BY DEFAULT
更改为 GENERATED BY ALWAYS
CREATE TABLE HW_COB.ILCCDS
(
CDS_IDENTITY FOR COLUMN CDSID NUMERIC(13, 0) GENERATED BY DEFAULT AS IDENTITY (
START WITH 1 INCREMENT BY 1
NO MINVALUE NO MAXVALUE
NO CYCLE NO ORDER
CACHE 20 ) ,
CODE_1 FOR COLUMN CDSCD1 CHAR(30),
CODE_2 FOR COLUMN CDSCD2 CHAR(30) );
ALTER TABLE HW_COB.ILCCDS ADD CONSTRAINT HW_COB.PK_CDS_IDENTITY PRIMARY KEY (CDS_IDENTITY);
Finally got the alter as :
ALTER TABLE HW_COB.ILCCDS ALTER COLUMN CDS_IDENTITY SET GENERATED ALWAYS;
我在 DB2 中创建了以下 table。由于序列是GENERATED BY DEFAULT
,所以可以在table中插入主键(因为主键是在table创建后用alter添加的),并且有重复值的机会。解决方案是使用 GENERATED BY ALWAYS
创建序列。现在我在 table 中有数据,我想将其从 GENERATED BY DEFAULT
更改为 GENERATED BY ALWAYS
CREATE TABLE HW_COB.ILCCDS
(
CDS_IDENTITY FOR COLUMN CDSID NUMERIC(13, 0) GENERATED BY DEFAULT AS IDENTITY (
START WITH 1 INCREMENT BY 1
NO MINVALUE NO MAXVALUE
NO CYCLE NO ORDER
CACHE 20 ) ,
CODE_1 FOR COLUMN CDSCD1 CHAR(30),
CODE_2 FOR COLUMN CDSCD2 CHAR(30) );
ALTER TABLE HW_COB.ILCCDS ADD CONSTRAINT HW_COB.PK_CDS_IDENTITY PRIMARY KEY (CDS_IDENTITY);
Finally got the alter as :
ALTER TABLE HW_COB.ILCCDS ALTER COLUMN CDS_IDENTITY SET GENERATED ALWAYS;