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!
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!