Oracle 学习

唯一约束和唯一索引的区别:

primary key  主键是唯一的,但唯一的不一定是主键

check 也可以用于非空约束的实现。也就是说一个字段不允许为空,则系统将会创建一个系统的check约束,该约束定了某字段不能为空。

unique   约束

Foreign key  外键

这里的可能容易产生误解,其实创建主键的结果是一样的,不管是在创建约束时创建还是创建索引时创建,都会创建一个主键约束和对应的一个唯一索引。

创建唯一约束与创建唯一索引有所不同:

  • 创建唯一约束会在Oracle中创建一个Constraint,同时也会创建一个该约束对应的唯一索引。
  • 创建唯一索引只会创建一个唯一索引,不会创建Constraint。

也就是说其实唯一约束是通过创建唯一索引来实现的。对于前端开发人员来说这两者有什么区别吗?好像没有。都是不能插入重复的值。在删除时这两者也有一定的区别,删除唯一约束时可以只删除约束而不删除对应的索引,所以对于的列还是必须唯一的,而删除了唯一索引的话就可以插入不唯一的值。

原文地址:https://www.cnblogs.com/sharon0203/p/6861322.html