在MySQL中添加外键

时间:2013-12-25 21:33:47

标签: mysql sql foreign-keys foreign-key-relationship

我想在一个表中添加外键,主键是引用父表中的多个列,但是在外键表中添加了空值。

第一个表是使用来自表基因对的查询创建的,该基因对只有下面给出的gene1和gene2列:

 create table id_genepair(  
    id int not null auto_increment, 
    constraint id_pk primary key(id,geneid1,geneid2)
 );
 select * from gene pair;

现在,这是我使用上述查询创建的父表。

id      gene1  gene2

1       819    2798
2       5535   2798
3       5478   2798

这是我的第二个表(genepair_drugid),我想添加外键,无论上表中的genepair(gene1,gene2)存在,

    gene1   geneid1   drugid1      gene1    geneid2  drugid2

    CAMLG   819        DB00091      GNRHR   2798    DB00007
    PPP3R2  5535       DB00091      GNRHR   2798    DB00007
    PPIA    5478       DB00091      GNRHR   2798    DB00007
    CAMLG   819        DB00087      GNRHR   2798    DB00051

我正在使用此查询:

   create table id_genepair_drugid(
      Drugpair_id int not null auto_increment ,
      id_pk int not null,
      primary key (Drugpair_id),
      foreign key (id_pk) References id_genepair(id_pk)
   );
  select * from genepair_drugid;      

基本上,我希望将Drugpair_id作为此表的唯一主键,并将id_pk作为外键。

Drugpair_id  id_pk gene1   geneid1   drugid1      gene1    geneid2  drugid2

   1       0       CAMLG    819    DB00091      GNRHR   2798    DB00007
   2       0       PPP3R2   5535    DB00091     GNRHR   2798    DB00007
   3       0       PPIA    5478    DB00091      GNRHR   2798    DB00007
   4       0       CAMLG   819       DB00087      GNRHR   2798    DB00051

所以,问题是我的id_pk列是一个外键应该有1,2,3,1作为id_genepair表中的值,我在上面创建,但是我得到所有的O.

谢谢,

0 个答案:

没有答案