我想在一个表中添加外键,主键是引用父表中的多个列,但是在外键表中添加了空值。
第一个表是使用来自表基因对的查询创建的,该基因对只有下面给出的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.
谢谢,