【发布时间】:2011-10-18 22:55:29
【问题描述】:
我在其中一个包含员工信息的表中分配主键时遇到问题。该表中没有唯一列,我剩下的唯一选择是将三列组合作为主键。
但它给出了一个警告消息
Warning! The maximum key length is 900 bytes. The index 'pk_hrempid' has maximum length of 1530 bytes.For some combination of large values, the insert/update operation will fail我开始知道这将是未来插入数据的一个主要问题。这个警告有解决办法吗?其他问题是我可以将自动增量值作为唯一 id,是否推荐?我想确保它不会像我一样在未来出现问题许多表包含来自其他部门的员工信息。一些员工可能同时在两个或多个表中
感谢任何帮助!
【问题讨论】:
-
有兴趣了解导致该错误的列数据类型定义。
-
很难调试我们看不到的 SQL DDL 代码 ;) 不要害羞,发布属性名称数据类型和示例数据。您可能会在这里找到对您的业务领域具有领域知识的人,他们可以为您指明行业标准密钥或其他受信任的标识符来源的方向。
-
@Widor..谢谢你的线索..我所有的数据类型都有一个默认的 nvarchar(255)(因为我已经从访问中放大了),这对于列中的数据来说太长了,我已经更改了主键列的数据类型,然后主键没有警告!我是否必须更改所有其他列的数据类型(与 nvarchar 相比,这些列的数据也很小)......还是可以按原样放置?
标签: sql primary-key composite-primary-key