我在这里读过所有类似的错误,仍然无法弄清楚为什么我会收到此错误
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
我已经检查过:所有密钥都是唯一的
答案 0 :(得分:0)
尝试并删除表格中的所有行。 同时将product_id设为PRIMARY KEY。这应该有用。
答案 1 :(得分:0)
我需要检查数据库中的所有外键和约束名称。 一个约束与密钥同名 - 这就是mysql workbench的工作原理