Primary key确保实体完整性,保证表中每行纪录是唯一的,可以是一列,也可以是多列组合,UNIQUE是某一列的唯一索引!

解决方案 »

  1.   

    1.两个约束对于null值处理不同,pk不能为null,unique可以有多个空值.
    2.一个表中pk只能有一个,而unique可以有多个.
      

  2.   

    事实上,pk 是一个逻辑概念, unique index是一个物理概念。只是在大多数rdbms上,为一个表设置pk时,会自动为其产生一个相应的unique index. 这时,pk成为一种特殊的unique index.
    举个例子来说明:在人员信息中,有人员编号,姓名,身份证号码等信息。从逻辑设计角度,将人员编号设计为表的pk, 以表明人员编号可以唯一的标示一条记录。而身份证号码则由于其事实上的唯一性,同时,经常以其为条件进行查询,故通常在其上创建unique index.
      

  3.   

    guo(正在消化Oracle)说的是对的
      

  4.   

       是不是在具有PK特性的列中不能有重复值呢?(如:0001;0001)
    那UNIQUE呢?
      

  5.   

    pk:
       1.每个表只能有一个pk
       2.pk的列必须为空
       3.pk列的值是唯一的
       4.默认情况对应一个cluster index(如果在query analyzer中建立pk)
    unique:
       1.每个表只能有多个unique
       2.unique的列不必须为空
       3.unique列的值是唯一的
       4.默认情况对应一个noncluster index
       5.可以在pk上建立unique constraint
      

  6.   

    to neatcat:
       你说每个表只能有一个pk,为何我的表可以建一个以上的PK呢?(Primary Key)
    按你讲的--(pk列的值是唯一的;unique列的值是唯一的),是不是在列中的值都不能重复呢?
    何谓唯一啊?那建立Index有何不同啊?也是不能重复吗(唯一的)?
       还请各位再讲解一下!
      
      
      
      

  7.   

    没错,就是不能重复,不可能的一个以上的PK,可把多个列作为一个PK