Olá Lucas, tudo bem?
Esse erro geralmente devido a incompatibilidade entre os tipos de dados ou as definições das colunas nas tabelas referenciadas.
Lucas, peço que verifique se se há outras diferenças, como o conjunto de caracteres (charset) ou a collation.Você pode usar o seguinte comando para verificar a estrutura das tabelas:
SHOW CREATE TABLE alugueis;
SHOW CREATE TABLE clientes;
Certifique-se de que as colunas aluguel_id
na tabela alugueis
e cliente_id
na tabela clientes
têm exatamente o mesmo tipo de dados, charset e collation.
Se houver diferenças, você pode ajustar a definição das colunas na tabela resumo_aluguel
para corresponder às definições nas tabelas referenciadas. Por exemplo:
CREATE TABLE resumo_aluguel (
aluguel_id VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
cliente_id VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
valor_total DECIMAL(10,2),
desconto_aplicado DECIMAL(10,2),
valor_final DECIMAL(10,2),
PRIMARY KEY (aluguel_id, cliente_id),
FOREIGN KEY (aluguel_id) REFERENCES alugueis(aluguel_id),
FOREIGN KEY (cliente_id) REFERENCES clientes(cliente_id)
);
Depois de garantir que as definições são compatíveis, tente recriar a tabela resumo_aluguel
.
Espero ter ajudado.
Qualquer dúvida, compartilhe no fórum.
Abraços e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!