DB2 9.7 上唯一约束的最大大小



我创建了一个表:创建表我的表 ( ID INT 始终作为标识生成(从 1 开始,递增 1,无缓存)主键, PCDURL Varchar(2000) NOT NULL)

我想使 pcdurl 属性成为唯一的约束。

但是我收到SQL 633错误。我想这是因为大小超过了允许的最大数量。我的第一个问题是这个数字是多少?

这里它说数字是 255-n,其中 n 是允许空值的列数。

但我也在这个页面上阅读:"UNIQUE 约束中列的最大组合长度(通过 UNIQUE 索引支持,以字节为单位)8192"

所以我的第二个问题是如何在将属性保留为唯一键约束的同时克服这个问题?

提前非常感谢

从本质上讲,您将不得不找到一个较小的pdcurl,以便对该表示形式强制实施唯一约束。

你可以有一个额外的字段,它是pdcurl的哈希,并使该哈希值成为一个唯一的字段。 根据哈希函数的不同,发生碰撞的可能性很小(可能很小)。 但它将始终防止重复。

或者您可能会发现所有 url 都以相同的路径开头,因此将该部分替换为 . 或其他内容?

相关内容

  • 没有找到相关文章

最新更新