我创建了一个表: CREATE TABLE myTable( id int生成始终作为身份(从1开始,增加1,没有缓存)主键, pcdurl varchar(2000)NOT NULL )
我想让pcdurl属性成为一个独特的约束。
但是我收到了 SQL 633错误。 我想这是因为尺寸超过了允许的最大数量。 我的第一个问题是这个号码是什么?
Here它表示数字是255-n,其中n是允许空值的列数。
但我也正在阅读page:“UNIQUE约束中的列的最大组合长度(通过UNIQUE索引支持,以字节为单位)8192”
所以我的第二个问题是如何在将属性保持为唯一键约束的同时克服此问题?
非常感谢您提前
答案 0 :(得分:0)
基本上,您将不得不找到pdcurl
的较小重新表示,以便您对该表示强制执行唯一约束。
您可以有一个额外的字段,它是pdcurl
的哈希值,并使该哈希值成为唯一字段。根据散列函数,您有一个小的(可能微小)碰撞的机会。但它总能防止重复。
或者您可能会发现所有网址都以相同的路径开头,因此请用.\
或其他内容替换该部分?