SQL: 没有两个实体可以具有相同的两个属性组合?

SQL: No two entities can have the same combination of two attributes?

例如,如果我有一个 table "Delivery" 属性日期和 driver。我不希望在同一日期有两次 driver 相同的交货。我如何在 CREATE TABLE 语句中执行此操作?

为此,您需要在这两列上声明一个 PRIMARY KEY 或 UNIQUE INDEX。更常见的情况是声明一个 PRIMARY KEY,在这种情况下,唯一列被视为提供由行建模的项目的标识。

有些人更喜欢创建一个单独的 auto-numbered INTEGER 字段作为 PRIMARY KEY,并在要强制执行唯一性的两个列上声明 UNIQUE INDEX。这是使用 "surrogate" 或 "non-intelligent" 键调用的。使用 "natural" 键调用第一个解决方案。

根据您使用的数据库产品,创建这些约束的语法会有细微的变化,但它们通常类似于:

 ALTER TABLE table_name ADD PRIMARY KEY key_name (column_name1, column_name2)