0
Мы не можем выполнить запрос ниже. У нас есть другая таблица с именем «человек», и у нее есть первичный ключ 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 Workbench Oracle.
Теперь он говорит: "# 1061 - Дубликат ключа имя 'person_id_UNIQUE'" – gzg
Geez, просто посмотрите на свой SQL. Это потому, что у вас есть два UNIQUE определения с тем же именем: 'UNIQUE INDEX person_id_UNIQUE (cid ASC)' и 'UNIQUE INDEX person_id_UNIQUE (person_id ASC)'. Часть сразу после 'UNIQUE INDEX' - это имя индекса. –