1
健康管理DBを作成しようとしていますが、このエラーが発生します。何が問題ですか?エラーコード:1215外部キー制約を追加できません
-- 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`));
エラーは次のとおりです。
TABLE
MOH
を作成します。patient
(...)エラーコード:1215は 外部キー制約に
は、なぜあなたはMOH.glocationで複数列の主キーを作成する代わりにしている(あなたが定義しようとした三つの独立した制約がある限り、各値は独立が
glocation
に存在していたよう。'El Camino Real', 'New York City', 'Florida'
のようなナンセンスの組み合わせを許可しています)ジオロケーションフィールドを使用するだけですか?なぜ地理位置情報を使用する代わりにMOH.patientのMOH.glocationからフィールド(ストリート、シティ、州)を複製していますか? – Rick