0
以下のクエリは実行できません。 "person"という別のテーブルがあり、それには主キーperson_idがあります。ご覧のとおり、この列を(顧客テーブルの)外部キーとして取得しようとしています。 phpMyAdminは、#1064構文エラーを返します。ここで何がうまくいかないの?Innodbは外部キーを受け付けません
CREATE TABLE IF NOT EXISTS `resort`.`customers` (
`person_id` VARCHAR(45) NOT NULL ,
`cid` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
UNIQUE INDEX `person_id_UNIQUE` (`cid` ASC) ,
PRIMARY KEY (`person_id`) ,
UNIQUE INDEX `person_id_UNIQUE` (`person_id` ASC) ,
CONSTRAINT `person_id`
FOREIGN KEY()
REFERENCES `resort`.`person`()
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB
ところで、このクエリはOracleのMySQL Workbenchによって生成されます。
今では言う: "#1061 - 重複キー名 'person_id_UNIQUE'" だけ – gzg
もぉ、あなたのSQLを見てください。これは、同じ名前のUNIQUE定義が2つあるためです:「UNIQUE INDEX person_id_UNIQUE(cid ASC)」と「UNIQUE INDEX person_id_UNIQUE(person_id ASC)」です。 UNIQUE INDEXの直後の部分は索引の名前です。 –