Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL Добавяне на външен ключ

Външният ключ помага за установяване на връзки с базата данни и поддържане на референтната цялост. Те помагат за свързването на една или повече колони в една таблица с друга таблица. Ето как да добавите външен ключ в 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 улеснява визуализирането на данни за минути и наблюдение в табла за управление в реално време. Опитайте днес!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Настройте база данни и създайте потребител само за четене в AWS Redshift и Mysql

  2. Преобразуване на времевата марка към дата в MySQL заявка

  3. Как да мигрирам база данни на SQL Server към MySQL?

  4. Mysql, за да изберете месечен запис, дори ако данни не съществуват

  5. java.sql.SQLException Индекс на параметър извън обхвата (1> брой параметри, което е 0)