【问题标题】:Is it possible to duplicate entries in composite primary keys in sql server 2014是否可以在 sql server 2014 中复制复合主键中的条目
【发布时间】:2016-09-27 05:58:37
【问题描述】:

在我的项目中,我在一个表中使用了 3 个主键,这将是表单和其他字段中的 3 个下拉菜单的条目。其他字段会有所不同,但多条记录的 3 个下拉列表的条目将相同。但我收到异常“重复键值”。有什么方法可以将重复条目添加到 sql server 中的主键。

【问题讨论】:

  • 根据定义,您不能有重复的主键值。为什么要这样设置复合键?您的应用中的业务需求是什么——您可以使用代理键(序列/UUID)吗?
  • 一个 RDBMS 表可以有许多可以被 FOREIGN KEY 引用的 UNIQUE KEY。这些唯一键之一可以指定为主键。这意味着它是唯一的,即不允许重复值。这就是定义,所以如果您尝试插入重复值,当然会出现“重复键值”错误。这就是它应该工作的方式。尝试谷歌搜索what is a primary key。所有文章都使用“独特”一词。

标签: java sql-server hibernate spring-mvc


【解决方案1】:

您只能使用一个主键,而不是您所说的 3 个。该主键可以是一个组合并包含 3 个字段,但它仍然是一个键。请参阅下面的链接进行确认;

Can I have multiple primary keys in a single table?

您可以拥有多个独立的唯一键,请参阅下面的详细信息;

http://www.w3schools.com/sql/sql_unique.asp

您必须为您的表格编写脚本以查看您拥有哪些。如果是复合主键,那么答案是否定的,不能有重复,这就是主键的意义所在。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-17
    • 1970-01-01
    • 1970-01-01
    • 2014-09-22
    • 2017-04-30
    • 1970-01-01
    • 2017-04-22
    相关资源
    最近更新 更多