EN
MySQL - add FOREIGN KEY to existing table
0
points
In this article, we would like to show you how to add FOREIGN KEY to the existing table in MySQL.
Quick solution:
ALTER TABLE
`table_name`
ADD CONSTRAINT
`constraint_name` FOREIGN KEY (`column_name`)
REFERENCES `reference_table`(`reference_column`);
Practical example
To show how to add FOREIGN KEY to the existing table, we will use the following tables
Note:
At the end of this article you can find database preparation SQL queries.
Example
In this example, we will add fk_group_id foreign key to the group_id column from users table which is a reference to the id column from groups table.
Query:
ALTER TABLE `users`
ADD CONSTRAINT `fk_group_id` FOREIGN KEY (`group_id`) REFERENCES `groups`(`id`);
Output:

Database preparation
create_tables.sql file:
CREATE TABLE `groups` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`group_name` VARCHAR(50) NOT NULL,
PRIMARY KEY (`id`)
);
CREATE TABLE `users` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`username` VARCHAR(50) NOT NULL,
`group_id` INT(10) UNSIGNED,
PRIMARY KEY (`id`)
);
insert_data.sql file:
INSERT INTO `groups`
(`group_name`)
VALUES
('group1'),
('group2');
INSERT INTO `users`
(`username`, `group_id`)
VALUES
('user1', 1),
('user2', 1),
('user3', 2),
('user4', 2);