2012-06-14 38 views
3

我知道使用下面的代码将使每列具有唯一值,但是如果我想要全名是唯一的,该怎么办?名字和姓氏在SQL中必须是唯一的

CREATE TABLE people (first_name varchar2(32) unique, 
        last_name varchar2(32) unique); 

这将使每个属性在其独到之处,但我需要让他们两者一起独一无二的,就像如果我有一个名为“詹姆斯·史密斯”,我不想再次重复这个名字呢,但它确定是否有“詹姆斯桑德兰”的家伙。

+0

你真的有来验证数据库中所有的业务逻辑?我只是好奇。 – Win

+1

你知道那个first_name,姓是不是真的是一个独特的组合吗?即使是一个小型组织,如果他们像医生的办公室那样雇用父亲和儿子的组合,他们也可以很轻松地结束。 – HLGEM

+1

@win,uniquess必须在数据库中进行验证,否则您将遇到数据完整性问题。 – HLGEM

回答

4

定义上的两列的组合UNIQUE约束:

CREATE TABLE people 
    (first_name varchar2(32) , 
    last_name varchar2(32) , 
    UNIQUE (first_name, last_name) 
) ;