ОШИБКА: Ошибка 1022: невозможно записать; дубликат ключа в таблице «рецепты» - PullRequest
0 голосов
/ 18 апреля 2019

Я получаю следующую ошибку при пересылке моей базы данных:

ОШИБКА: ошибка 1022: запись невозможна; дубликат ключа в таблице «рецепты»

Есть предложения?

Я исследовал вопрос в stackoverflow и подумал, что если бы я изменил имя некоторых моих внешних ключей из других таблиц (некоторые из которых имеют те же имена внешних ключей), то не было бы ошибки. Тот же код ошибки сохраняется. Схема для моей базы данных показывает только 2 из восьми таблиц.

Выполнение сценария SQL на сервере

ERROR: Error 1022: Can't write; duplicate key in table 'recipes'
SQL Code:
        -- -----------------------------------------------------
        -- Table `our_recipes`.`recipes`
        -- -----------------------------------------------------
        CREATE TABLE IF NOT EXISTS `our_recipes`.`recipes` (
          `recipe_id` INT NOT NULL,
          `chef_id` INT NOT NULL,
          `recipe_name` CHAR(25) NULL,
          `description` LONGTEXT NULL,
          `min_prep` VARCHAR(25) NULL,
          `total_time` INT NULL,
          `servings_min` VARCHAR(25) NULL,
          `servings_max` VARCHAR(45) NULL,
          `directions` VARCHAR(45) NULL,
          `website_id1` VARCHAR(25) NOT NULL,
          PRIMARY KEY (`recipe_id`),
          INDEX `chef_id_idx` (`chef_id` ASC),
          INDEX `website_id_idx` (`website_id1` ASC),
          UNIQUE INDEX `recipe_id_UNIQUE` (`recipe_id` ASC),
          CONSTRAINT `chef_id`
            FOREIGN KEY (`chef_id`)
            REFERENCES `our_recipes`.`chef` (`chef_id`)
            ON DELETE NO ACTION
            ON UPDATE NO ACTION,
          CONSTRAINT `website_id`
            FOREIGN KEY (`website_id1`)
            REFERENCES `our_recipes`.`website` (`website_id`)
            ON DELETE NO ACTION
            ON UPDATE NO ACTION)
        ENGINE = InnoDB

Я ожидал, что в схеме базы данных будет восемь таблиц. Я также не ожидал ошибок.

1 Ответ

0 голосов
/ 18 апреля 2019

Ошибка

Ошибка 1022: запись невозможна; дубликат ключа в таблице «рецепты» кода SQL

сообщает, что вы вставляете запись в таблицу recipes с идентификатором или уникальным идентификатором, который уже существует в таблице.

Чтобы устранить эту проблему, убедитесь, что в ваших скриптах оператора вставки нет повторяющихся первичных ключей.

...