Foreign Key helpt databaserelaties tot stand te brengen en de referentiële integriteit te behouden. Ze helpen bij het koppelen van een of meer kolommen in de ene tabel aan een andere tabel. Hier leest u hoe u een externe sleutel toevoegt in MySQL.
Hoe een externe sleutel in MySQL toe te voegen
Hier zijn de stappen om een externe sleutel toe te voegen in MySQL. U kunt een externe-sleutelbeperking toevoegen met behulp van CREATE TABLE- of ALTER TABLE-instructies in SQL.
Hier is de syntaxis om een externe sleutel in MySQL te maken.
ALTER TABLE gebruiken
ALTER TABLE table_name ADD CONSTRAINT constraint_name FOREIGN KEY (foreign_key_name,...) REFERENCES parent_table(column_name,...);
In de bovenstaande zoekopdracht, table_name is de tabel waarin u een externe sleutel wilt toevoegen. constraint_name is de naam van de externe sleutelbeperking. foreign_key_name, … is de lijst met kolommen met vreemde sleutels.
parent_table is de tabel waarnaar uw refererende_sleutel verwijst, gevolgd door een lijst met kolomnamen in die tabel
Bonus lezen:MySQL Wijzig tabelkolom
CREATE TABLE gebruiken
CREATE TABLE table_name( column_name column_description, CONSTRAINT constraint_name FOREIGN KEY (foreign_key_name,...) REFERENCES parent_table(column_name,...) )
In de bovenstaande zoekopdracht, table_name is de tabel waar u een externe sleutel wilt toevoegen. constraint_name is de naam van de externe sleutelbeperking. foreign_key_name, … is de lijst met kolommen met vreemde sleutels.
parent_table is de tabel waarnaar uw refererende_sleutel verwijst, gevolgd door een lijst met kolomnamen in die tabel.
Let op , in ALTER TABLE moet je ADD CONSTRAINT gebruiken, terwijl je in CREATE TABLE alleen het trefwoord CONSTRAINT moet gebruiken.
Bonus lezen:MySQL DROP FOREIGN KEY-beperking
MySQL ADD FOREIGN KEY Voorbeelden
Stel dat u de volgende tabellen heeft.
Laten we 2 tabellen maken (categorieën en bestellingen ) en voeg een externe sleutelbeperking toe aan orders , verwijzend naar id kolom in categorieën tafel.
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 | | +-------------+---------+------+-----+---------+----------------+
Bonus Lezen:MySQL DROP UNIEKE BEPERKING
Laten we hetzelfde voorbeeld bekijken met de instructie 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 | | +-------------+---------+------+-----+---------+----------------+
Ubiq maakt het gemakkelijk om gegevens binnen enkele minuten te visualiseren en in realtime dashboards te controleren. Probeer het vandaag nog!