我们可以将一个FOREIGN KEY定义为一个表中的两列以上吗?

时间:2012-12-19 07:12:07

标签: mysql hibernate

这是我的数据库表,它给出了错误..

外键定义多于两列..

    CREATE  TABLE IF NOT EXISTS `EC_ATTENDEES` (
  `S_ID` VARCHAR(30) NOT NULL PRIMARY KEY,
  `USER_ID` VARCHAR(30) NULL ,
  `TYPE` VARCHAR(30) NULL ,
`TIMETABLE_ID` VARCHAR(30) NULL ,
  `COURSE_FEE` INT NULL ,
  `PERMISSION` TINYINT(1) NULL ,
  `PAYMENT_STATUS` VARCHAR(30) NULL ,
  `BEGIN_CLASS_NUM` INT NULL ,
  `END_CLASS_NUM` INT NULL ,

    FOREIGN KEY (`USER_ID` ) REFERENCES `EC_USER` (`S_ID` ),
    FOREIGN KEY (`BEGIN_CLASS_NUM` ) REFERENCES `EC_TIMETABLE` (`S_ID` ),
    FOREIGN KEY (`END_CLASS_NUM` ) REFERENCES `EC_TIMETABLE` (`S_ID` ),
    FOREIGN KEY (`TIMETABLE_ID` ) REFERENCES `EC_TIMETABLE` (`S_ID` ));

2 个答案:

答案 0 :(得分:1)

这可能是因为其中一个外键列的类型与引用列的类型不匹配。外键中提到的两列(BEGIN_CLASS_NUMEND_CLASS_NUM)的类型为INT,另一列(TIMETABLE_ID)的类型为VARCHAR(30)。引用的列(S_ID)只能是两个中的一个,因此任何一个或两个外键都会产生错误。

答案 1 :(得分:0)

无法实现,您的链接不正确。