Ao tentar criar uma tabela usando MySQL, você encontra o erro 1022: "Não é possível gravar; chave duplicada na mesa." O aspecto peculiar é que a tabela define apenas uma única chave, mas o erro persiste.
Após investigação, parece que um trecho específico dentro da definição da tabela aciona o erro:
CONSTRAINT `error_id`
FOREIGN KEY (`error_id` )
REFERENCES `mydb`.`errors` (`error_id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
Embora existam definições de chave estrangeira semelhantes em outras tabelas sem problemas, o problema está no nome da chave estrangeira: error_id.
A causa raiz:
O problema surge porque um nome de chave estrangeira não pode ser igual a outro nome de chave estrangeira em todo o modelo de banco de dados. Isso significa que se duas tabelas fizerem referência à mesma tabela, as chaves estrangeiras em cada tabela deverão ter nomes exclusivos.
Solução:
Para resolver o erro, basta fornecer o chave estrangeira em questão com um nome diferente. Por exemplo, você poderia chamá-lo de fk_error_id. Isso irá distingui-la de qualquer outra chave estrangeira no modelo e permitir que o MySQL crie a tabela com sucesso.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3