在mysql中我为一个表T1定义了两个主键K1,K2,然后在另外一个表T2中设置外键约束,对于T2中的属性A,它的外键约束就对应着T1的主键,但是这时候,T1的主键有两个这时候我该怎么添加外键约束呢??

解决方案 »

  1.   

    CREATE TABLE `testkey` (
      `a` int(11) NOT NULL DEFAULT '0',
      `b` int(11) NOT NULL DEFAULT '0',
      PRIMARY KEY (`a`,`b`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 |CREATE TABLE `testforeign` (
      `c` int(11) DEFAULT NULL,
      `d` int(11) DEFAULT NULL,
      KEY `cd` (`c`,`d`),
      CONSTRAINT `cd` FOREIGN KEY (`c`, `d`) REFERENCES `testkey` (`a`, `b`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
      

  2.   

    一一对应吧,不可只对ying主表的一列,除非你加上unique限制,如果主键两个列,你在子表插入式必须两个列都要和父对应