Външният ключ помага за установяване на връзки с базата данни и поддържане на референтната цялост. Те помагат за свързването на една или повече колони в една таблица с друга таблица. Ето как да добавите външен ключ в MySQL.
Как да добавя чужд ключ в MySQL
Ето стъпките за добавяне на външен ключ в MySQL. Можете да добавите ограничение за външен ключ, като използвате изрази CREATE TABLE или ALTER TABLE в SQL.
Ето синтаксиса за създаване на външен ключ в MySQL.
Използване на ALTER TABLE
ALTER TABLE table_name ADD CONSTRAINT constraint_name FOREIGN KEY (foreign_key_name,...) REFERENCES parent_table(column_name,...);
В горната заявка име_на_таблица е таблицата, в която искате да добавите външен ключ. име_на_ограничение е името на ограничението за външния ключ. име_на_странния_ключ, … е списъкът с колони с външни ключове.
родителска_таблица е таблицата, към която вашият чужд_ключ препраща, последвана от списък с имена на колони в тази таблица
Бонус четене:MySQL Alter Table Column
Използване на CREATE TABLE
CREATE TABLE table_name( column_name column_description, CONSTRAINT constraint_name FOREIGN KEY (foreign_key_name,...) REFERENCES parent_table(column_name,...) )
В горната заявка име_на_таблица е таблицата, в която искате да добавите външен ключ. име_на_ограничение е името на ограничението за външния ключ. име_на_странния_ключ, … е списъкът с колони с външни ключове.
родителска_таблица е таблицата, към която се позовава вашият чужд_ключ, последвана от списък с имена на колони в тази таблица.
Моля, обърнете внимание , в ALTER TABLE трябва да използвате ADD CONSTRAINT, докато в CREATE TABLE трябва да използвате само ключова дума CONSTRAINT.
Бонус четене:Ограничение на MySQL DROP FOREIGN KEY
Примери за ДОБАВЯНЕ НА ВЪНШЕН КЛЮЧ към MySQL
Да приемем, че имате следните таблици.
Нека създадем 2 таблици (категории и поръчки ) и добавете ограничение за външен ключ към поръчките , препраща към id колона в категории таблица.
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 | | +-------------+---------+------+-----+---------+----------------+
Бонус четене:MySQL ОТПУСКА УНИКАЛНО ОГРАНИЧЕНИЕ
Нека да разгледаме същия пример, използвайки израза 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 улеснява визуализирането на данни за минути и наблюдение в табла за управление в реално време. Опитайте днес!