1
resposta

Relacionamento com models já existentes no banco

Boa noite, por favor, como posso criar os relacionamentos com tabelas já existentes no banco? Eu criei uma nova tabela de um novo projeto e preciso relacionar com tabelas que já estão lá ... Eu criei neste novo projeto os models das tabelas que eu irei processar porém ao relacionar apresenta o seguinte erro:

ERROR: Cannot add foreign key constraint

1 resposta

Oi, Bruno, tudo bem?

Quando você criou as tabelas anteriores, você criou primary keys na tabela que você queria relacionar, utilizou a key? Vou dar um exemplo de relacionamento de tabelas.

CREATE TABLE IF NOT EXISTS categoria(
                id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
                name VARCHAR(50) NOT NULL,
                date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
                UNIQUE KEY (NAME)

E uma relação com essa tabela acima já criada:

CREATE TABLE IF NOT EXISTS livro(
                id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
                categoria_id INTEGER NOT NULL,
                autor_id INTEGER NOT NULL,
                titulo VARCHAR(50) NOT NULL UNIQUE KEY,
                edicao INTEGER UNSIGNED NOT NULL,
                preco FLOAT UNSIGNED NOT NULL,
                FOREIGN KEY (categoria_id) REFERENCES categoria(id),
                FOREIGN KEY (autor_id) REFERENCES autor(id)
              )

Dessa forma, com a foreign key de categoria, será referenciada na outra tabela em que utilizo o campo nome da tabela categoria através da unique key (name).

Se ficou alguma dúvida, é só falar!