我想通过MySql的语法了解为什么同一个表中不允许两个主键的原因。我了解复合键,这与此无关。
我不明白为什么不允许在同一个表中使用两个单独的主键。但是我们可以将一列作为主键,另一列作为唯一且不为空。它实际上具有两个不同的主键,因为我们可以使用这些键中的任何一个来清楚地识别一行。为什么第一个不允许,而后一个是?
我试图弄清楚逻辑,但偶然发现了 Codd 的 12 条规则中的第 2 条,上面写着
通过使用表名、主键值和列名的组合,可以保证关系数据库中的每个数据(原子值)在逻辑上都是可访问的。
表名、主键值和列的组合对于单个数据值是否应该是唯一的,或者我们可以有多种组合来保证访问?为什么或者为什么不?
编辑:由于该问题被确定为可能重复,我将在下面解释它有何不同 其他类似问题是
我可以在一个表中有多个主键吗?
答案是NO。
我的问题是为什么?原因是什么?
Codd 打算通过第 2 条规则说什么?
如果允许多个单独的主键会出现什么问题?