错误:错误 3780:引用列“pessoa_cpf”和外键约束“fk_usuario_pessoa1”中引用的列“cpf”不兼容

问题描述 投票:0回答:1

请有人帮助我,我真的不明白要解决什么问题。

CREATE SCHEMA IF NOT EXISTS `Venda_livros` DEFAULT CHARACTER SET utf8 ;
USE `Venda_livros` ;

-- -----------------------------------------------------
-- Table `Venda_livros`.`pessoa`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Venda_livros`.`pessoa` (
  `cpf` INT NOT NULL,
  `nome_completo` VARCHAR(150) NOT NULL,
  `data_de_nascimento` DATE NOT NULL,
  `numero_de_telefone` VARCHAR(45) NOT NULL,
  `genero` VARCHAR(45) NULL,
  PRIMARY KEY (`cpf`, `nome_completo`))
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `Venda_livros`.`usuario`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Venda_livros`.`usuario` (
  `login` INT NOT NULL,
  `email` VARCHAR(45) NOT NULL,
  `senha` VARCHAR(8) NOT NULL,
  `genero_de_interesse` VARCHAR(45) NULL,
  `preferencia_de_notificacao` VARCHAR(45) NULL,
  `pessoa_cpf` INT UNSIGNED NOT NULL,
  PRIMARY KEY (`login`, `email`),
  INDEX `fk_usuario_pessoa1_idx` (`pessoa_cpf` ASC) VISIBLE,
  CONSTRAINT `fk_usuario_pessoa1`
    FOREIGN KEY (`pessoa_cpf`)
    REFERENCES `Venda_livros`.`pessoa` (`cpf`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;

我试图修复它,但我做不到,它一直给我一个错误

php sql mysql workbench error-code
1个回答
0
投票

cpf
被定义为
INT
,而
pessoa_cpf
被定义为
UNSIGNED INT
。 如果要定义从一个到另一个的外键,它们应该使用相同的类型。更改其中一种类型以适应另一种类型,然后您就可以开始了。

© www.soinside.com 2019 - 2024. All rights reserved.