ALTER TABLE `attendance`
ADD CONSTRAINT `attendance_ibfk_1` FOREIGN KEY (`subid`) REFERENCES `subject` (`subid`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `attendance_ibfk_2` FOREIGN KEY (`studid`) REFERENCES `studentdetails` (`studid`) ON DELETE CASCADE ON UPDATE CASCADE;
--attendance table is
CREATE TABLE IF NOT EXISTS `attendance` (
`attid` bigint(4) NOT NULL AUTO_INCREMENT,
`studid` varchar(20) NOT NULL,
`subid` bigint(4) NOT NULL,
`totalclasses` int(2) NOT NULL,
`attendedclasses` int(2) NOT NULL,
`percentage` double(4,2) NOT NULL,
`comment` text NOT NULL,
PRIMARY KEY (`attid`),
KEY `studid` (`studid`),
KEY `subid` (`subid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;
--subject table is...
CREATE TABLE IF NOT EXISTS `subject` (
`subid` bigint(4) NOT NULL AUTO_INCREMENT,
`subname` varchar(20) NOT NULL,
`courseid` bigint(4) NOT NULL,
`lecid` bigint(4) NOT NULL,
`subtype` varchar(25) NOT NULL,
`semester` varchar(25) NOT NULL,
`comment` text NOT NULL,
PRIMARY KEY (`subid`),
KEY `courseid` (`courseid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;
-- Table structure for table `studentdetails`
--
CREATE TABLE IF NOT EXISTS `studentdetails` (
`studid` varchar(25) NOT NULL,
`studfname` varchar(20) NOT NULL,
`studlname` varchar(20) NOT NULL,
`fathername` varchar(25) NOT NULL,
`gender` varchar(20) NOT NULL,
`address` varchar(100) NOT NULL,
`contactno` varchar(20) NOT NULL,
`courseid` bigint(4) NOT NULL,
`semester` varchar(20) NOT NULL,
`dob` date NOT NULL,
PRIMARY KEY (`studid`),
KEY `courseid` (`courseid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
答案 0 :(得分:1)
存在类型不匹配。
attendance.studid
为varchar(20)
,studentdetails.studid
为varchar(25)
我想两者都应该是varchar(20)
或varchar(25)
。