主键约束的警告消息

时间:2011-10-18 14:46:01

标签: sql primary-key composite-primary-key

我在其中一个包含员工信息的表中分配主键时遇到问题。该表中没有唯一的列,我剩下的唯一选项是将三列组合作为主键。

  1. 但它给出了一条警告信息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我发现这将是未来插入数据的一个主要问题。这个警告有解决方案吗?

  2. 其他问题是我可以将自动增量值作为唯一ID吗?是推荐吗?我想确保它在将来不会出现问题,因为我有许多表包含来自其他部门的员工信息。有些员工可能出现在两个或多个表中

  3. 感谢任何帮助!

3 个答案:

答案 0 :(得分:0)

虽然您尝试使用复合主键时尝试使用“自然键”的最佳做法,但使用自动递增ID字段并没有“错误”。

如果建议的字段太大而无法用作密钥,那么首先它们可能不是最佳选择。您是否可以添加另一个“自然”键列,其中包含更好的数据类型?

不要忘记通过为要进行大量查询的表选择合适的索引和合适的数据类型来考虑可能的优化。

答案 1 :(得分:0)

  1. 这是主键的限制。你不能有超过900字节的PK。

  2. 您可以向表中添加标识列并将其设置为主键。我更喜欢使用Guids,因为它们具有全球独特性。

答案 2 :(得分:0)

我会使用主键的自动增量类型解决方案,因此使用个人数据的问题是您无法保证唯一性,这是主键的基本要求。