请问各位
CREATE TABLE MusicToIP
( MIP_ipId INTEGER NOT NULL,
  MIP_musicId INTEGER NOT NULL,
  MIP_ipPort SMALLINT NOT NULL,
  FOREIGN KEY (MIP_ipId) REFERENCES Users_IP(UIP_ipId),
  FOREIGN KEY (MIP_musicId) REFERENCES Music_Information(MUS_id),
  FOREIGN KEY (MIP_ipPort) REFERENCES Users_IP(UIP_port)
);
为什么建不成数据库文件? 
如果把  MIP_ipPort SMALLINT NOT NULL,和
  FOREIGN KEY (MIP_ipPort) REFERENCES Users_IP(UIP_port)这两句删除就可以,是不是不能在一个表中引用两个外键?? 
如何解决这个问题?

解决方案 »

  1.   

    /* 建立复合外键就可以了呀,注意(UIP_ipId,UIP_port)应当是Users_IP表的主键 */CREATE TABLE MusicToIP
    ( MIP_ipId INTEGER NOT NULL,
    MIP_musicId INTEGER NOT NULL,
    MIP_ipPort SMALLINT NOT NULL,
    FOREIGN KEY (MIP_musicId) REFERENCES Music_Information(MUS_id),
    FOREIGN KEY (MIP_ipId,MIP_ipPort) REFERENCES Users_IP(UIP_ipId,UIP_port)
    );
      

  2.   

    不行,还是老样子,提示: can't create table "musictoip.frm"
      

  3.   

    主键建立了吗?注意(UIP_ipId,UIP_port)应当是Users_IP表的主键