MySQL WorkBench上的错误代码1022

24 浏览
0 Comments

MySQL WorkBench上的错误代码1022

我正试图创建这些表,但在创建表cadastro_fornecedor时出现错误1022。

我不知道从哪里开始解决这个问题,所以任何类型的帮助都是受欢迎的。

这是.sql文件的内容:

0
0 Comments

错误代码1022出现在MySQL WorkBench中的问题是由于重复使用了现有的约束名称(id_administrador已经在表cadastro_usuario中用作约束名称,而CNPJ在表exemplar中使用),因此您需要为约束提供唯一的名称(在这里我将它们重命名为cf_id_administrador/CF_CNPJ)。

解决方法如下:

-- -----------------------------------------------------

-- Table `mydb`.`cadastro_fornecedor`

-- -----------------------------------------------------

CREATE TABLE IF NOT EXISTS `mydb`.`cadastro_fornecedor` (

`id_cadastro` INT NOT NULL AUTO_INCREMENT,

`data` DATETIME NULL,

`id_administrador` INT NULL,

`CNPJ` VARCHAR(45) NULL,

PRIMARY KEY (`id_cadastro`),

INDEX `id_administrador_idx` (`id_administrador` ASC),

INDEX `CNPJ_idx` (`CNPJ` ASC),

CONSTRAINT `cf_id_administrador`

FOREIGN KEY (`id_administrador`)

REFERENCES `mydb`.`administrador` (`id_administrador`)

ON DELETE NO ACTION

ON UPDATE NO ACTION,

CONSTRAINT `CF_CNPJ`

FOREIGN KEY (`CNPJ`)

REFERENCES `mydb`.`fornecedores` (`CNPJ`)

ON DELETE NO ACTION

ON UPDATE NO ACTION)

ENGINE = InnoDB;

简而言之,您需要为表cadastro_fornecedor中的约束提供独特的名称,以解决错误代码1022的问题。

0