A chave estrangeira ajuda a estabelecer relacionamentos de banco de dados e manter a integridade referencial. Eles ajudam a vincular uma ou mais colunas em uma tabela a outra tabela. Veja como adicionar chave estrangeira no MySQL.
Como adicionar chave estrangeira no MySQL
Aqui estão as etapas para adicionar chave estrangeira no MySQL. Você pode adicionar restrição de chave estrangeira usando instruções CREATE TABLE ou ALTER TABLE no SQL.
Aqui está a sintaxe para criar uma chave estrangeira no MySQL.
Usando ALTER TABLE
ALTER TABLE table_name ADD CONSTRAINT constraint_name FOREIGN KEY (foreign_key_name,...) REFERENCES parent_table(column_name,...);
Na consulta acima, table_name é a tabela onde você deseja adicionar a chave estrangeira. constraint_name é o nome da restrição de chave estrangeira. foreign_key_name, … é a lista de colunas de chave estrangeira.
tabela_pai é a tabela à qual sua chave estrangeira faz referência, seguida pela lista de nomes de coluna nessa tabela
Bônus de leitura:coluna da tabela de alteração do MySQL
Usando CRIAR TABELA
CREATE TABLE table_name( column_name column_description, CONSTRAINT constraint_name FOREIGN KEY (foreign_key_name,...) REFERENCES parent_table(column_name,...) )
Na consulta acima, table_name é a tabela onde você deseja adicionar a chave estrangeira. constraint_name é o nome da restrição de chave estrangeira. foreign_key_name, … é a lista de colunas de chave estrangeira.
tabela_pai é a tabela à qual sua chave estrangeira faz referência, seguida pela lista de nomes de coluna nessa tabela.
Observe , em ALTER TABLE você precisa usar ADD CONSTRAINT enquanto em CREATE TABLE você precisa usar apenas a palavra-chave CONSTRAINT.
Leitura Bônus:Restrição DROP FOREIGN KEY do MySQL
Exemplos de ADICIONAR CHAVE ESTRANGEIRA do MySQL
Digamos que você tenha as seguintes tabelas.
Vamos criar 2 tabelas (categorias e pedidos ) e adicione a restrição de chave estrangeira aos pedidos , referenciando id coluna em categorias tabela.
mysql> create table categories(id int auto_increment primary key,name varchar(255)); mysql> create table orders(id int auto_increment primary key,category_id int, CONSTRAINT fk_cat FOREIGN KEY (category_id) REFERENCES categories(id)); mysql> describe orders; +-------------+---------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+---------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | category_id | int(11) | YES | MUL | NULL | | +-------------+---------+------+-----+---------+----------------+
Bônus de leitura:MySQL DROP UNIQUE CONSTRAINT
Vamos dar uma olhada no mesmo exemplo usando a instrução ALTER TABLE.
mysql> create table orders(id int auto_increment primary key,category_id int); mysql> create table categories(id int auto_increment primary key,name varchar(255)); mysql> ALTER TABLE orders ADD CONSTRAINT fk_cat FOREIGN KEY (category_id) REFERENCES categories(id); mysql> describe orders; +-------------+---------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+---------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | category_id | int(11) | YES | MUL | NULL | | +-------------+---------+------+-----+---------+----------------+
O Ubiq facilita a visualização de dados em minutos e o monitoramento em painéis em tempo real. Experimente hoje!