错误:错误1022:无法写入;表“食谱”中的重复键

时间:2019-04-18 01:00:56

标签: mysql database mysql-workbench

对数据库进行正向工程时会收到以下错误:

  

错误:错误1022:无法写入;表“食谱”中的重复键

有什么建议吗?

我研究了stackoverflow中的问题,并认为如果我从其他表中更改了一些外键的名称(其中某些表具有相同的外键名称),则不会出错。相同的错误代码仍然存在。我的数据库的模式仅显示八个表中的两个。

在服务器中执行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 :(得分:0)

错误

  

错误1022:无法写入;表“食谱” SQL代码中的重复键

告诉您您要在表recipes中插入一条记录,该记录具有表中已经存在的ID或唯一标识符。

要解决此问题,请确保插入语句脚本中没有重复的主键。