Sql 一个表是否可以将两个不同的列设置为主键?考虑到这两列都有唯一且非空的值

Sql 一个表是否可以将两个不同的列设置为主键?考虑到这两列都有唯一且非空的值,sql,Sql,如果这两列都有自己的唯一值,是否可以声明这两列都是主键?PS不要将两列的组合声明为复合键。表中的主键有三个属性: 键为非空(所有组件) 钥匙是独一无二的 每张桌子只有一张 这是关系数据库中主键的定义。第三个条件非常清楚,不能将其中两个放在同一个表中 另一方面,您可以有一个主键和另一个定义为UNIQUE和notnull的键。您可以任意多次执行此操作。不要标记垃圾邮件。标记您真正使用的RDBMS,并且仅标记该RDBMS。至于您似乎要问的问题,在SQL Server中,至少一个表只能有一个主键。该

如果这两列都有自己的唯一值,是否可以声明这两列都是主键?PS不要将两列的组合声明为复合键。

表中的主键有三个属性:

  • 键为
    非空
    (所有组件)
  • 钥匙是独一无二的
  • 每张桌子只有一张
这是关系数据库中主键的定义。第三个条件非常清楚,不能将其中两个放在同一个表中


另一方面,您可以有一个主键和另一个定义为
UNIQUE
notnull
的键。您可以任意多次执行此操作。

不要标记垃圾邮件。标记您真正使用的RDBMS,并且仅标记该RDBMS。至于您似乎要问的问题,在SQL Server中,至少一个表只能有一个主键。该键可以包含多个列,但不能定义多个主键。如果需要其他唯一列,请使用
唯一约束
/
唯一IDNEX
。我怀疑这与您标记的其他RDBMS(以及我从上述标记中删除的RDBMS)有所不同。