我坚持使用我的父子mysql表 . 我正在使用Java编程语言中的预备语句 . 但我只是成功地将数据插入到我的父表中 . 但是,在执行另一个insert语句后,我无法将数据插入到子表中 .

这些是我的表格的一瞥:

tbl_patient:ID(主键)patientName(主键)地址联系人

tbl_admission:ID(主键)admitDate patientName(从tbl_patient引用的外键)

当我执行我的语句以插入新患者时,它成功了,我将结果存储到我的tbl_patient表中 . 但是,当我执行tbl_admission的准备语句时,我的问题就开始了,因为它无法将数据添加到我的tbl_admission中 . 相反,我收到以下错误:

无法添加或更新子行:外键约束失败( hms_mdh/admission ,CONSTRAINT FK_admission_1 FOREIGN KEY( IDpatientName )REFERENCES tbl_patientIDpatientName ))

我真的不知道这里发生了什么 . 我能得到任何帮助吗?谢谢 .

这是我的子表中的示例sql - 入场表:

CREATE TABLE admissionID int(11)NOT NULL auto_increment, admitID varchar(45)NOT NULL default'', admitDate varchar(45)NOT NULL default'', patientID varchar(45)NOT NULL default'', entrance varchar(45 )NOT NULL default'', doctor varchar(45)NOT NULL default'',_ 9741 varchar(45)NOT NULL default'', recommend varchar(100)NOT NULL default'',_ 9743 varchar(45)NOT NULL default'' ,PRIMARY KEY( ID ),KEY FK_admission_1974746 9747),CONSTRAINT FK_admission_1 FOREIGN KEY( IDpatientName )REFERENCES tbl_patientID ,_9753))ENGINE = InnoDB DEFAULT CHARSET = latin1 COMMENT ='InnoDB free:11264 kB; ( ID patientName )REFER`hms_mdh / t'

这是父表 - 患者:

CREATE TABLE tbl_patientID int(11)NOT NULL auto_increment, patientID varchar(45)NOT NULL default'',_ 9759 varchar(45)NOT NULL default'', birthday varchar(45)NOT NULL default'', chiefcomplain varchar(100 )NOT NULL default'', entrance varchar(45)NOT NULL default'', patientName varchar(45)NOT NULL default'',PRIMARY KEY( IDpatientName ))ENGINE = InnoDB DEFAULT CHARSET = latin1