银行Db2

DB2中,如有一个表 test(id,name),其中id, name有数据。 现在要将id的属性改为自增,如何实现?

DB2 求指导,如已有一个表 test(id,name),其中id, name 都已经有了数据。现在要将id的属性改为自增,如何来实现?

参与10

3同行回答

youki2008youki2008系统架构师DDT
直接修改就行:alter table test alter column id set generated always as identity (start with 3,increment by 1) 其中3为max(id)+自增量,1为自增量(步长)显示全部

直接修改就行:alter table test alter column id set generated always as identity (start with 3,increment by 1) 其中3为max(id)+自增量,1为自增量(步长)

收起
互联网服务 · 2020-04-24
浏览1073
hufeng719hufeng719联盟成员系统工程师某钢铁企业
楼上说的很对,首先必须确保id列不能为空  然后找到最大值,start with最大值 再加上自增量。但是做完这些后必须重组表才能使用,不然会报错:对表进行任何操作都不被允许,提示SQLSTATE=57016 SQLCODE=-668 ,原因码 "7"的错误:SQL0668N Operation not ...reorg table test ...显示全部

楼上说的很对,首先必须确保id列不能为空  然后找到最大值,start with最大值 再加上自增量。但是做完这些后必须重组表才能使用,不然会报错:对表进行任何操作都不被允许,提示SQLSTATE=57016 SQLCODE=-668 ,原因码 "7"的错误:SQL0668N Operation not ...
reorg table test   如果用户没有权限执行,必须用管理员账户进入执行reorg
重组后才能操作该表。

收起
能源采矿 · 2020-04-26
浏览1103
y5_sety5_set其它不告诉你
直接修改就行db2 "select max(id) from test"如果id不是not null 需要修改为not nulldb2 alter table test alter column id set not null 修改为自增字段db2 "alter table test alter column id set generated always as identity (start with 3,increment by 1)"3为max...显示全部

直接修改就行

db2 "select max(id) from test"

如果id不是not null 需要修改为not null

db2 alter table test alter column id set not null

修改为自增字段

db2 "alter table test alter column id set generated always as identity (start with 3,increment by 1)"

3为max(id)+步长,1为步长

收起
互联网服务 · 2020-04-20
浏览1238

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2020-04-20
  • 关注会员:4 人
  • 问题浏览:2285
  • 最近回答:2020-04-26
  • X社区推广