可以定义几个字段为 primary key
比如表alpha 有字段a_id , a_name等等
可以将a_id和a_name的组合定义为主键,那么便是对a_id+a_name的组合进行唯一约束
即只有不同记录的两者都相同才会出错

解决方案 »

  1.   

    UNIQUE 约束在列集内强制执行值的唯一性。 
    对于 UNIQUE 约束中的列,表中不允许有两行包含相同的非空值。主键也强制执行唯一性,但主键不允许空值。UNIQUE 约束优先于唯一索引。
      

  2.   

    PRIMARY KEY 约束标识列或列集,这些列或列集的值唯一标识表中的行。 
    在一个表中,不能有两行包含相同的主键值。不能在主键内的任何列中输入 NULL 值。在数据库中 NULL 是特殊值,代表不同于空白和 0 值的未知值。建议使用一个小的整数列作为主键。每个表都应有一个主键。一个表中可以有一个以上的列组合,这些组合能唯一标识表中的行,每个组合就是一个候选键。数据库管理员从候选键中选择一个作为主键。例如,在 part_sample 表中,part_nmbr 和 part_name 都可以是候选键,但是只将 part_nmbr 选作主键。CREATE TABLE part_sample
                (part_nmbr        int            PRIMARY KEY,
                part_name        char(30),
                part_weight        decimal(6,2),
                part_color        char(15) 
      

  3.   

    PRIMARY KEY:主键,每个表只能有一个,他是标识标记录的唯一标志;
    UNIQUE:是唯一索引的选项,每个表可以有多个唯一索引。
      

  4.   

    表中的數據都應有一個唯一的primary key, 或者說是用主鍵代表表中任何一個紀錄.
    而unique key只是一個不重覆的索引, 但不可代表表中所有數據.
      

  5.   

    alphazhao(绿色咖啡) 讲得通透彻落,
    zq11(zq11) 简单明了。
    Erickleung讲得也不错。谢谢了。