你第二张表中的外键必须引用第一表的主键或唯一键.就改为:
constraint cy_fk foreign key(sf_no,sx,fh_no,js_no,lx) references khzl(sf_no,sx,fh_no,js_no,lx)上面蓝色部分不知道你都有没有对应的字段.

解决方案 »

  1.   

    亦即是外键引用的,必须是主键或唯一键,可以考虑把khzl表中的(sf_no,sx,lx)三个这段加上唯一约束.
    或者按上面我说的. 
      

  2.   

    create table cy(sf_no varchar2(2) not null,                  /*省编号*/ 
                          sx varchar2(40) not null,                      /*市县名*/ 
                          fs varchar2(10) not null,           /*发运方式*/ 
                          lx varchar2(10),                                  /*类型:教材、货源、销售*/ 
                          cy_no varchar2(2) not null,                /*承运商编号*/ 
                          cy_jl_rq date default sysdate,            /*授权日期*/ 
                          j_id varchar2(12),                      /*授权人员工号*/ 
                          yj number(6,3),                                /*运价*/ 
                          cy_sx_rq date,                                  /*失效日期*/ 
                          u char(1) default 'y',                          /*有效标志*/ 
                          constraint cy_fk foreign key(sf_no,sx,lx) references khzl(sf_no,sx,lx), 
                          constraint cy_pk primary key(sf_no,sx,fs,lx,cy_no,yj) 
                    ); 
    为什么第二张表建立时,提示: 
                    constraint cy_fk2 foreign key(sf_no,sx,lx) references khzl(sf_no,sx,lx), 
                                                                              * 
    ERROR 位于第 12 行: 
    ORA-02270: 此列列表的唯一或主键不匹配问题在:
    constraint cy_fk2 foreign key(sf_no,sx,lx) references khzl(sf_no,sx,lx), 已经在之前建立的约束了
    所以constraint cy_fk foreign key(sf_no,sx,lx) references khzl(sf_no,sx,lx), 在建立的时候会发生冲突的。
      

  3.   

    vvnet:
      木有看懂你的回复呀,你所说的cy_fk2在哪里?
      

  4.   

    sleepzzzzz:
       我刚才试了一下将其他的表的主键增加,结果你的说法是正确的,谢谢你!!
        看来我得修改各个表之间的关系结构了,感谢跟贴的各位大侠!!
        顺便问问,怎么付分?新手,请多包涵!!