您好我想询问是否可以设置2个唯一密钥,在某些情况下,其中一个可能有重复但另一个不重复。
示例是这样的:
orderID trans_date
1 2016-02-25 01:00:00
1 2016-02-25 01:00:01
2 2016-02-25 01:00:00
正如您所看到的,如果我只将trans_date
设为唯一键,则它可以是重复的,它也与orderID
相同。
因此,不是为其中一个创建唯一ID,为什么我们不为它们创建。
OrderID和trans_date之后不能相同。
有可能吗?
答案 0 :(得分:2)
最好的办法是拥有一把主键。您可以在orderID和trans_date上使用复合主键,这样您就可以拥有多个与@Gordon建议的值相同的trans_date。
如果由于某种原因,复合主键不适合您的目的,您可以在表格上触发一个检查所需条件的触发器,并允许事务继续进行。
答案 1 :(得分:1)
如果您希望两个键作为一对唯一,那么您可以创建一个唯一索引:
create unique index unq_example_orderid_transdate on example(orderID, trans_date);
或者,您可以创建一个基本相同的唯一约束。