我有两个myIsam表student
和fee
,后来更改为InnoDB引擎并将外键分配给section
表中的fee
字段,该字段指向{{1}带有UPDATE和DELETE CASCADE的section
表中的字段。我的问题是现有的student
字段值与现有的section
部分值不匹配。发生这种情况是因为在我更改引擎之前,我更新了学生表student
字段,并认为当我转换表并分配时,section
表中的section
字段值也会发生变化两个表中fee
字段的外键。我不确定同步是否会解决它。我是新手,不知道我怎么解决这个问题。请帮帮我。
费用表:
section
学生表:
CREATE TABLE IF NOT EXISTS `fee` (
`f_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`regd` bigint(20) unsigned NOT NULL,
`Class` varchar(20) COLLATE latin1_general_ci NOT NULL,
`Section` varchar(10) COLLATE latin1_general_ci NOT NULL,
`Amount` int(11) NOT NULL,
`Balance` int(11) NOT NULL,
PRIMARY KEY (`f_id`),
KEY `Section` (`Section`),
KEY `Rollno` (`Rollno`),
KEY `regd` (`regd`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci
AUTO_INCREMENT=2500;
ALTER TABLE `fee`
ADD CONSTRAINT `fee_ibfk_1` FOREIGN KEY (`Section`)
REFERENCES `student` (`Section`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `fee_ibfk_2` FOREIGN KEY (`Rollno`)
REFERENCES `student` (`Roll_no`) ON DELETE CASCADE ON UPDATE CASCADE;
答案 0 :(得分:1)
除非你有哪些费用应该记录哪个学生,但我担心你不能这样做。
您必须重新创建链接;要么使用运行UPDATE
的日志,要么使用备份,要么手动使用。