Mysql可以';t创建表(错误号:150)
我正在尝试使用sql文件导入下表,但是Mysql可以';t创建表(错误号:150),mysql,Mysql,我正在尝试使用sql文件导入下表,但是 #1005-无法创建表“ehr患者用药”(错误号:150) 你能帮我修一下吗?提前谢谢你 CREATE TABLE IF NOT EXISTS `ehr_se`.`patient_medication` ( `patient_medication_id` INT NOT NULL AUTO_INCREMENT , `admission_id` INT NOT NULL , `patient_id` INT NOT NULL , `active_
#1005-无法创建表“ehr患者用药”(错误号:150)
你能帮我修一下吗?提前谢谢你
CREATE TABLE IF NOT EXISTS `ehr_se`.`patient_medication` (
`patient_medication_id` INT NOT NULL AUTO_INCREMENT ,
`admission_id` INT NOT NULL ,
`patient_id` INT NOT NULL ,
`active_ingredient` VARCHAR( 45 ) NULL ,
`active_ingredient_id_code` INT NULL ,
`strength` INT NULL ,
`pharmaceutical_dose_form` VARCHAR( 45 ) NULL ,
`number_of_units_per_intake` INT NULL ,
`frequency_of_intakes` INT NULL ,
`duration_of_treatment` DATE NULL ,
`date_of_onset_treatment` DATE NULL ,
`start_date_of_treatment` DATE NULL ,
PRIMARY KEY ( `patient_medication_id` ) ,
UNIQUE INDEX `pat_med_id_UNIQUE` ( `patient_medication_id` ASC ) ,
INDEX `med_admin_data` ( `admission_id` ASC , `patient_id` ASC ) ,
CONSTRAINT `med_adm_data` FOREIGN KEY ( `admission_id` , `patient_id` ) REFERENCES `ehr_se`.`admission_data` (
`admission_id` ,
`patient_id`
) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = INNODB;
检查你的参考键
`ehr_se`.`admission_data` (
`admission_id` ,
`patient_id`
)
具有精确类型
INT
解决方案是在表入院数据中,将入院id
和患者id
字段作为一个索引。在失败的创建后执行显示警告
,这将为您提供更详细的信息。父表上的(入院id,患者id)
上可能没有索引。。。这是InnoDB外键的要求。。。