Sql DB2(v10.5.0.5)如何向现有表添加自动增量列
我试图在DB2的现有表中添加一个自动增量列 DB2版本是v10.5.0.5 以下是我的疑问:Sql DB2(v10.5.0.5)如何向现有表添加自动增量列,sql,db2,Sql,Db2,我试图在DB2的现有表中添加一个自动增量列 DB2版本是v10.5.0.5 以下是我的疑问: alter table DB2INST1.AAA_BJ_BOND ADD COLUMN id INTEGER NOT NULL DEFAULT 0; ALTER TABLE DB2INST1.AAA_BJ_BOND ALTER COLUMN id set generated always as identity (start with 1); 但我犯了以下错误: "com.ibm.db2.jcc
alter table DB2INST1.AAA_BJ_BOND
ADD COLUMN id INTEGER NOT NULL DEFAULT 0;
ALTER TABLE DB2INST1.AAA_BJ_BOND ALTER COLUMN id
set generated always as identity (start with 1);
但我犯了以下错误:
"com.ibm.db2.jcc.am.SqlSyntaxErrorException: ALTER TABLE "DB2INST1.AAA_BJ_BOND"
specified attributes for column "ID" that are not compatible with the existing
column.. SQLCODE=-190, SQLSTATE=42837, DRIVER=4.13.127"
如何解决此问题?必须先删除列默认值。 在以下内容的描述中提到了这一点: 如果指定了SET GENERATED ALWAYS AS表达式,则 已使用生成默认值、标识或 表达式,并且在同一语句中没有相应的DROP
必须先删除列默认值。 在以下内容的描述中提到了这一点: 如果指定了SET GENERATED ALWAYS AS表达式,则 已使用生成默认值、标识或 表达式,并且在同一语句中没有相应的DROP
现在我已经通过以下三个步骤成功地将自动增加ID添加到表中: ALTER TABLE DB2INST1.AAA_SEAT ADD COLUMN ID INTEGER NOT NULL默认值0 ALTER TABLE DB2INST1.AAA_SEAT ALTER COLUMN ID DROP DEFAULT
ALTER TABLE DB2INST1.AAA_SEAT ALTER COLUMN ID SET始终作为标识以1开头生成 现在我通过以下三个步骤成功地将自动增加ID添加到表中: ALTER TABLE DB2INST1.AAA_SEAT ADD COLUMN ID INTEGER NOT NULL默认值0 ALTER TABLE DB2INST1.AAA_SEAT ALTER COLUMN ID DROP DEFAULT
ALTER TABLE DB2INST1.AAA_SEAT ALTER COLUMN ID SET始终作为标识以1开头生成 我不知道DB2,它可能只是不允许向现有表添加序列,但您是否尝试将两者结合起来?ALTER?:ALTER table DB2INST1.AAA_BJ_BOND ADD COLUMN id INTEGER not NULL generated as identity始终以1开头;这仍然会导致错误,但下面给出了解决方案。我不知道DB2,它可能只是不允许向现有表中添加序列,但您是否尝试将两者结合起来?ALTER?:ALTER table DB2INST1.AAA_BJ_BOND ADD COLUMN id INTEGER not NULL general as identity start with 1;这仍然会导致错误,但解决方案如下。您的回答帮助我解决了这个问题。现在我已经通过以下三个步骤成功地将自动递增ID添加到表中:ALTER table DB2INST1.AAA_SEAT ADD COLUMN ID INTEGER NOT NULL DEFAULT 0;ALTER TABLE DB2INST1.AAA_SEAT ALTER COLUMN ID DROP DEFAULT;ALTER TABLE DB2INST1.AAA_SEAT ALTER COLUMN ID SET始终作为标识以1开头生成;设置新的默认值后,执行此操作以替换旧的默认值:更新DB2INST1.AAA_BJ_BOND SET ID=default,其中ID=0;你的回答帮助我解决了这个问题。现在我已经通过以下三个步骤成功地将自动递增ID添加到表中:ALTER table DB2INST1.AAA_SEAT ADD COLUMN ID INTEGER NOT NULL DEFAULT 0;ALTER TABLE DB2INST1.AAA_SEAT ALTER COLUMN ID DROP DEFAULT;ALTER TABLE DB2INST1.AAA_SEAT ALTER COLUMN ID SET始终作为标识以1开头生成;设置新的默认值后,执行此操作以替换旧的默认值:更新DB2INST1.AAA_BJ_BOND SET ID=default,其中ID=0;不要忘记为所有现有行设置唯一值:更新DB2INST1.AAA_SEAT SET ID=DEFAULT;不要忘记为所有现有行设置唯一值:更新DB2INST1.AAA_SEAT SET ID=DEFAULT;
ALTER TABLE DB2INST1.AAA_BJ_BOND
ALTER COLUMN id drop default;
ALTER TABLE DB2INST1.AAA_BJ_BOND ALTER COLUMN id
set generated always as identity (start with 1);