Criando uma chave estrangeira no MySQL

Veja nesse artigo como implementar uma chave estrangeira no MySQL a partir do uso de tabelas do tipo InnoDB. Um artigo completo que vai te ajudar a compreender tudo sobre chave estrangeira no MySQL. Confira.

O MySQL, a partir da versão 3.23.43b, passa a incorporar o recurso de criação e manutenção de tabelas do tipo InnoDB. Tabelas do tipo InnoDB suportam restrições por chave estrangeira e o uso de stored procedures. Assim, se você quer modelar/desenvolver bancos implementando o recurso de chaves estrangeiras, suas tabelas terão que ser do tipo InnoDB.

Criando tabelas

Para criar tabelas do tipo InnoDB, você deverá incluir no final da tabela a seguinte sintaxe:

ENGINE = innodb;

Veja exemplos de criação de tabelas.

CREATE TABLE "cidades" ( "codcidade" INT NOT NULL , "descricao" VARCHAR( 50 ) NOT NULL ) ENGINE = innodb; CREATE TABLE "clientes" ( "codcliente" INT PRIMARY KEY , "nome" VARCHAR( 50 ) NOT NULL ) ENGINE = innodb; CREATE TABLE "vendedores" ( "codvendedor" INT PRIMARY KEY , "nome" VARCHAR( 50 ) NOT NULL ) ENGINE = innodb; CREATE TABLE "vendas" ( "codvenda" INT PRIMARY KEY , "datavenda" DATE NOT NULL "codcliente" INT, "codvendedor" INT ) ENGINE = innodb;
Listagem 1. Exemplo de criação de tabelas.

Após criar as tabelas, você fará uma alteração na estrutura de cada tabela que necessita utilizar a chave estrangeira. Essa alteração da estrutura da tabela é feita a partir do comando alter table.

Veja alguns exemplos:

ALTER TABLE "clientes" ADD CONSTRAINT "fk_cidade" FOREIGN KEY ( "codcidade" ) REFERENCES "cidade" ( "codcidade" ) ; ALTER TABLE "vendas" ADD CONSTRAINT "fk_vendas_codcliente" FOREIGN KEY ( "codcliente" ) REFERENCES "clientes" ( " codcliente " ) ; ALTER TABLE "vendas" ADD CONSTRAINT "fk_vendas_codvendedor" FOREIGN KEY ( "codvendedor" ) REFERENCES "vendedores" ( " codvendedor " ) ;
Listagem 2. Alterando a estrutura das tabelas.

Após criar as chaves estrangeiras vamos verificar a estrutura das tabelas utilizando o comando DESC. Digite DESC vendas para visualizar a estrutura da tabela vendas.

Figura 1. Apresentação da estrutura da tabela vendas.

Conclusões

Neste artigo foram apresentados exemplos práticos da criação de chaves estrangeiras a partir do uso de de tabelas do tipo InnoDB.

Artigos relacionados