foreing key – Stepan Suvorov Blog https://stepansuvorov.com/blog Release 2.0 Sun, 15 Jul 2012 12:41:43 +0000 en-US hourly 1 https://wordpress.org/?v=6.3.1 Что нужно для создания внешнего ключа(FOREIGN KEY) в MySQL https://stepansuvorov.com/blog/2012/07/create-foreign-key-mysql/ https://stepansuvorov.com/blog/2012/07/create-foreign-key-mysql/#comments Sun, 15 Jul 2012 12:27:29 +0000 http://stepansuvorov.com/blog/?p=301 Continue reading ]]> Все или почти все слышали что есть такое понятие как внешний ключ, но не все его умеют использовать. Поэтому я выкину теорию “зачем это нужно” и “на сколько это полезно” и сразу перейду к практике. Давайте разберемся что нам необходимо для создания внешнего ключа в MySQL:

1. Движок(engine) обеих связываемых таблиц должен быть InnoDB.

2. Связываемые поля должны быть проиндексированы и иметь один тип ( размер и знак должен быть один )

Из основного это все.

Теперь синтаксис взятый из официального мануала:

[CONSTRAINT [symbol]] FOREIGN KEY
    [index_name] (index_col_name, ...)
    REFERENCES tbl_name (index_col_name,...)
    [ON DELETE reference_option]
    [ON UPDATE reference_option]

reference_option:
    RESTRICT | CASCADE | SET NULL | NO ACTION

Где:

symbol - имя ключа
index_name - имя поля в таблице, которое мы хотим сделать ключом tbl_name - таблица, с которой осуществляем связывание index_col_name - имя поля, с которым связываем наш ключ reference_option - какое действие осуществляем в случае чего

Для пользователей phpmyadmin все это можно осуществить кнопочкой Relation view в структуре таблицы, в которой хотим задать внешний ключ.

Дальше только выбрать что мы с чем хотим связать и какие действия выполнять в случае удаления или обновления одной записи из связки.

]]>
https://stepansuvorov.com/blog/2012/07/create-foreign-key-mysql/feed/ 1