It is simple to create a foreign key in phpMyAdmin for a MySQL database.
A FOREIGN KEY helps to link two tables together. However, users may have trouble finding the options in phpMyAdmin.
At Bobcares, we receive requests to create foreign key a part of our Server Management Services.
Today, let’s see how our Support Engineers create a foreign key for MySQL from phpMyAdmin.
Foreign key MySQL
A foreign key is a column or group of columns in a relational database table. It provides a link between data in two tables.
For a column acting as a foreign key, a corresponding value should exist in the link table.
Foreign keys and their implementation are more complex than primary keys.
InnoDB is the only MySQL database engine that supports foreign keys.
How to create a foreign key in phpMyAdmin for MySQL
Recently one of our customers contacted us to create a foreign key for this MySQL database. Let us discuss how our Support Engineers setup it for our customers.
First we login to phpMyAdmin.
Now select the database to add the foreign key.
We select the table from the database.
MySQL only supports foreign key constraints on ‘InnoDB’ tables. MyISAM has no foreign keys because it is an old system.
If the table is in MyISAM, we change it to InnoDB and proceed further.
In Indexing, we define a primary key in the referred table which will work as the foreign key.
Next, we create a reference for an index we want to apply the foreign key constraints.
Now select the table and now click on the Structure view.
Then select the Relation view.
Finally, we set the foreign keys. We fill in the required details.
Another option is to run an SQL query.
We run the below query
ALTER TABLE table_name ADD CONSTRAINT fk_foreign_key_name FOREIGN KEY (foreign_key_name) REFERENCES target_table(target_key_name);
This query is run only when the keys already exist in the relevant table.
Common error when creating a foreign key in MySQL
Recently one of our customers contacted us as he was not able to create a foreign key.
On analyzing the database, one table was using the InnoDB engine while the other was using MyISAM.
To set up foreign key both the tables need to use InnoDB engine. This is because the MyISAM does not support foreign keys.
So we changed the tables engine and then created a foreign key for the customer. We always do take a backup of the database before making any changes.
[Need assistance to fix MySQL error – We’ll help you ]
In short, we have discussed the relevance of foreign keys. Also, we have discussed how our Support Engineers create a foreign key in phpMyAdmin for MySQL.