1
resposta

Erro na criação da tabela resumo_aluguel

Eu não consigo criar a nova tabela:

CREATE TABLE resumo_aluguel (
    aluguel_id VARCHAR(255),
    cliente_id VARCHAR(255),
    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)
);

O erro:

Error Code: 3780. Referencing column 'aluguel_id' and referenced column 'aluguel_id' in foreign key constraint 'resumo_aluguel_ibfk_1' are incompatible.

Ambas as colunas estão no formato VARCHAR(255)

1 resposta

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;

captura de tela da saída SHOW CREATE TABLE alugueis;

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!