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

时间:2016-01-25 18:52:59

标签: sql relational-database

例如,如果我有一个带有属性date和driver的表“Delivery”。我希望在同一天没有两个具有相同驱动程序的交付。我将如何在CREATE TABLE语句中执行此操作?

1 个答案:

答案 0 :(得分:1)

要执行此操作,您将在这两列上声明PRIMARY KEY或UNIQUE INDEX。更常见的情况是声明一个PRIMARY KEY,其中唯一列被认为提供由该行建模的项的标识。

有些人更喜欢创建一个单独的自动编号的INTEGER字段作为PRIMARY KEY,并在要强制唯一性的两列上声明一个UNIQUE INDEX。这是使用“代理”或“非智能”键调用的。使用“自然”键调用第一个解决方案。

根据您使用的数据库产品,创建这些约束的语法略有不同,但它们通常类似于:

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