【发布时间】:2016-10-27 07:17:33
【问题描述】:
我正在尝试创建健康管理数据库,但出现此错误。有什么问题?
-- table glocation
CREATE TABLE `MOH`.`glocation` (
`street` VARCHAR(20) NOT NULL,
`city` VARCHAR(20) NOT NULL,
`state` VARCHAR(20) NOT NULL,
`geolocation` INT(8),
PRIMARY KEY (`street`, `city`, `state`));
-- table patient
CREATE TABLE `MOH`.`patient` (
`PID` INT(6) zerofill UNSIGNED NOT NULL AUTO_INCREMENT,
`first_name` VARCHAR(45) NOT NULL,
`last_name` VARCHAR(45) NOT NULL,
`sex` VARCHAR(10),
`b_insurance` VARCHAR(45),
`s_insurance` VARCHAR(45),
`education` VARCHAR(20),
`job` VARCHAR(20),
`street` VARCHAR(20),
`city` VARCHAR(20),
`state` VARCHAR(20),
`date_of_birth` date,
`license` boolean,
PRIMARY KEY (`PID`),
CONSTRAINT `street`
FOREIGN KEY (`street`)
REFERENCES `MOH`.`glocation` (`street`),
CONSTRAINT `city`
FOREIGN KEY (`city`)
REFERENCES `MOH`.`glocation` (`city`),
CONSTRAINT `state`
FOREIGN KEY (`state`)
REFERENCES `MOH`.`glocation` (`state`));
错误是:
创建表
MOH.patient(...) 错误代码:1215。无法添加 外键约束
【问题讨论】:
-
为什么要在 MOH.glocation 中创建多列主键,而不是仅使用地理位置字段?为什么要从 MOH.patient 中的 MOH.glocation 复制字段(街道、城市、州)而不是使用地理定位?
标签: mysql foreign-keys mysql-workbench