Java preparedstatement无法使用外键

时间:2018-04-24 06:41:45

标签: foreign-keys

我遇到了我的父子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 admission(   ID 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'',   initialDiagnosis varchar(45)NOT NULL default'',   recommend varchar(100)NOT NULL default'',   patientName varchar(45)NOT NULL default'',   PRIMARY KEY(ID),   KEY FK_admission_1IDpatientName),   约束FK_admission_1外键(IDpatientName)参考tbl_patientIDpatientName) )ENGINE = InnoDB DEFAULT CHARSET = latin1 COMMENT ='InnoDB free:11264 kB; (ID patientName)REFER`hms_mdh / t'

这是父表 - 患者:

CREATE TABLE tbl_patient(   ID int(11)NOT NULL auto_increment,   patientID varchar(45)NOT NULL default'',   gender 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

0 个答案:

没有答案