本人对oracle不甚了解,请大侠们给讲解下现在项目中,需要保证字段a,b,c,d唯一,这个时候是否可以只建立唯一约束来保证唯一?在oracle中,是否建立了一个唯一约束,也就是建立建议了一个唯一约束的索引?

解决方案 »

  1.   

    索引字段不能为空
    唯一性约束的字段可以为空
    两个都不允许字段中出现重复的值这方面lz可google一下,应该有很多专门讲解这两个的区别的例子
      

  2.   

    你的理解是对的
    使用关键字unique来建立唯一约束
      

  3.   

    CREATE TABLE t4 (ID NUMBER);CREATE UNIQUE INDEX i_t4 ON t4(ID);SELECT * FROM dba_constraints WHERE table_name = 'T4';SELECT * FROM dba_indexes WHERE table_name = 'T4';INSERT INTO t4 VALUES (1);INSERT INTO t4 VALUES (1);INSERT INTO t4 VALUES (NULL);INSERT INTO t4 VALUES (NULL);SELECT * FROM t4;ROLLBACK;DROP INDEX i_t4;ALTER TABLE t4 ADD CONSTRAINT c_t4 UNIQUE (ID);SELECT * FROM dba_indexes WHERE table_name = 'T4';SELECT * FROM dba_tables WHERE table_name = 'T4';INSERT INTO t4 VALUES (1);INSERT INTO t4 VALUES (1);INSERT INTO t4 VALUES (NULL);INSERT INTO t4 VALUES (NULL);SELECT * FROM t4;ROLLBACK;ALTER TABLE t4 DROP CONSTRAINT c_t4;DROP TABLE t4;