SQL错误1022:无法写入;表中的重复键

时间:2016-10-21 17:12:12

标签: mysql sql

我在这里读过所有类似的错误,仍然无法弄清楚为什么我会收到此错误

Executing SQL script in server
ERROR: Error 1022: Can't write; duplicate key in table 'storage'
SQL Code:
    -- -----------------------------------------------------
    -- Table `storehouse`.`storage`
    -- -----------------------------------------------------
    CREATE TABLE IF NOT EXISTS `storehouse`.`storage` (
      `product_id` INT NOT NULL,
      `quantity` INT NULL,
      `storage_room` INT NULL,
      UNIQUE INDEX `product_id_UNIQUE` (`product_id` ASC),
      INDEX `storage_room_idx` (`storage_room` ASC),
      CONSTRAINT `product_id`
        FOREIGN KEY (`product_id`)
        REFERENCES `storehouse`.`product` (`product_id`)
        ON DELETE NO ACTION
        ON UPDATE NO ACTION,
      CONSTRAINT `storage_room`
        FOREIGN KEY (`storage_room`)
        REFERENCES `storehouse`.`space` (`space_id`)
        ON DELETE NO ACTION
        ON UPDATE NO ACTION)
    ENGINE = InnoDB

我已经检查过:所有密钥都是唯一的

2 个答案:

答案 0 :(得分:0)

尝试并删除表格中的所有行。 同时将product_id设为PRIMARY KEY。这应该有用。

答案 1 :(得分:0)

我需要检查数据库中的所有外键和约束名称。 一个约束与密钥同名 - 这就是mysql workbench的工作原理