比如有个表里有10个字段,其中3个字段为(名字,年龄,性别),如果这3个字段都相同就肯定是1个人。我想在表里设个主键,主键里包括这3个字段,如果1个记录里这3个字段都相同就不能插入。请问在plsql里怎么设置这样的一个主键?我现在在plsql里给这3个字段设置主键后,3个字段都成主键了,年龄一样就不能插入,性别一样也不能够插入。

解决方案 »

  1.   

    建立三列组合主键。
    pl/sql developer中也就是在选择主键列的时候多选
      

  2.   

    设置联合主键
    CREATE unique INDEX PK_Info ON tb1 (t_name,t_age,t_sex)
      

  3.   

    楼上正解 CREATE unique INDEX idx_Info ON tb1 (t_name,t_age,t_sex)
      

  4.   

    create table test(id number,name varchar2(10),age number,sex varchar2(10));alter table test add constraint test_pk primary key(name,age,sex);
      

  5.   


    这样设置后,如果2条记录的t_name,t_age,t_sex都一样的话,就只插入一条记录吗?t_name相同,t_age和t_sex不同的2条记录,能都插入一个表吗?
      

  6.   

    我现在在plsql里给这3个字段设置主键后,3个字段都成主键了,年龄一样就不能插入,性别一样也不能够插入。
    alter table <table_name>add constraint <constraint_name> primary key(<column1_name>,<column2_name>,...); 
      

  7.   


    这样设置后,如果2条记录的t_name,t_age,t_sex都一样的话,就只插入一条记录吗?t_name相同,t_age和t_sex不同的2条记录,能都插入一个表吗? 3个字段都一样  在插入第二条的时候 会报违反唯一约束条件3个中有2个相同 另一个不同 一样可以插入