【发布时间】:2018-08-24 09:57:51
【问题描述】:
我有一个表,其中我将两列作为复合主键。现在我有点困惑。
假设我有一个如下表:
ColA ColB
X NULL
X NULL
“X NULL”和“X NULL”这两个行都是 PRIMARY KEY。
那么,这种插入可能吗?因为 NULL 值不同,因此这两行应该代表一个新的数据组合。
请澄清。
【问题讨论】:
-
没有。主键列中不允许空值。
-
X, NULL与X, NULL究竟有何不同? -
首先,主键中不允许有空值。如果 2 列的 2 个值相同,它们将作为 X , Y 和另一个 X,Y 的一部分作为主键的一部分,这也是不允许的。因为它根本没有不同,它是相同的。
-
请edit您的问题并为相关表添加
create table语句,包括所有索引和约束。主键列不能包含空值,所以我猜你只创建了一个唯一索引,而不是主键约束
标签: sql primary-key composite-primary-key