唯一约束不能脱离索引而单独存在, oracle实现唯一约束的时候必须借助一个索引.
(可以这么理解, 一个字段上存在唯一索引, 当insert的时候, oracle怎么知道insert的值是否与现有的值冲突, 只能去现有的数据中查找, 为了查找更快, 必须有一个索引, 这个索引可以是用户建好以后指定给oracle的, 如果用户没有建好索引, 那oracle会自动创建一个索引.) 要么你先创建一个普通索引, 然后alter table add constraint ... using index xxx; 要么你直接 alter table add constraint ... 从性能上来说,个人感觉, 唯一索引和唯一约束是一样的; 从数据库对象的依赖性上来说, 用using index的方式创建的约束可以独立删除, 同时保留原来的索引, 但是直接创建的约束, 在删除的时候会自动把对应的索引删除, 这个很可怕, 如果在生产环境上一个索引突然被删除, 后果是很严重的. |
|
来自: 一杉一水 > 《ORACLE\AIX\C》