软件开发Db2主键报错

在最初创建表时指定hash建字段,现在要给表加主键,但不是原hash建上加,报错42997,请问啥原因呢?

最初表的DDL:create table test.tadd(biz_no varchar(64) not null /业务标识/,ac_no varchar(40) not null /账号/) distribute by hash(ac_no) compress yes static 现在想在biz_no字段上创建主键,报错42997,请问是什么原因?????...显示全部

最初表的DDL:
create table test.tadd(
biz_no varchar(64) not null /业务标识/
,ac_no varchar(40) not null /账号/
) distribute by hash(ac_no) compress yes static

现在想在biz_no字段上创建主键,报错42997,请问是什么原因?????

收起
参与7

返回drdb2的回答

drdb2drdb2  系统工程师 , se

IBM 文档就是这样规定的:

再者,必须将任何唯一索引(因此也是唯一键或主键)定义为分布键的一个超集。即,如果定义了分布键,那么唯一键和主键必须包括所有与分布键相同的列(它们可能有多列)。

互联网服务 · 2017-09-08

回答者

drdb2
系统工程师se

drdb2 最近回答过的问题

回答状态

  • 发布时间:2017-09-08
  • 关注会员:2 人
  • 回答浏览:2916
  • X社区推广