2
respostas

[Dúvida] não consegui resolver esse erro! Erro 1822

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

2 respostas

Boa noite Gustavo!

O erro 1822 sugere que a tabela referenciada pela chave estrangeira não possui um índice apropriado para a coluna que está sendo referenciada ou que a tabela referenciada não foi criada antes de você tentar criar a tabela hospedagens.

Para corrigir, o que recomendo:

  • Apague as tabelas de clientes, enderecos e proprietarios:

    DROP TABLE IF EXISTS clientes;
    DROP TABLE IF EXISTS enderecos;
    DROP TABLE IF EXISTS proprietarios;
    
  • Agora, execute o seguinte script de uma só vez:

    CREATE TABLE proprietarios (
    proprietario_id VARCHAR(255) PRIMARY KEY,
    nome VARCHAR(255),
    cpf_cnpj VARCHAR(20),
    contato VARCHAR(255)
    );
    
    CREATE TABLE clientes (
        cliente_id VARCHAR(255) PRIMARY KEY,
        nome VARCHAR(255),
        cpf VARCHAR(14),
        contato VARCHAR(255)
    );
    
    CREATE TABLE enderecos (
        endereco_id VARCHAR(255) PRIMARY KEY,
        rua VARCHAR(255),
        numero INT,
        bairro VARCHAR(255),
        cidade VARCHAR(255),
        estado VARCHAR(2),
        cep VARCHAR(10)
    );
    
    CREATE TABLE hospedagens (
        hospedagem_id VARCHAR(255) PRIMARY KEY,
        tipo VARCHAR(50),
        endereco_id VARCHAR(255),
        proprietario_id VARCHAR(255),
            ativo bool,
        FOREIGN KEY (endereco_id) REFERENCES enderecos(endereco_id),
        FOREIGN KEY (proprietario_id) REFERENCES proprietarios(proprietario_id)
    );
    

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Eu ja tinha criado algumas Tabelas anterirores sem copiar o codigo e só estava adicionando as que não tinha criado, creio que por esse motivo estava apresentando erro, exclui todas e criei do zero, copiei todo o codigo e colei inteiro no workbensh, deu certo, espero ter ajudado!