Създаване на външен ключ

Външен ключ външен ключ е да се свържат родител и дете таблици в базата данни. Т.е. Той гарантира, че стойностите на полетата в таблицата родител записва набор от ценности областта на записи маса дете. При това условие може да се определя от отношенията на автономните области в база данни на "едно към едно" и "един към много". Външен ключ е базиран на колоните в таблицата с дете, чиито стойности се отнасят за стойностите на записите в таблицата родител.

Когато един или повече полета в една таблица цитирани от съответния брой полета в друга маса - че тази връзка се нарича външен ключ външен ключ. и област (и), за който се отнася, се нарича ключа родител. Имена на външни ключове и майка не трябва да са еднакви. Външни и майки ключове трябва да съдържат едни и същи видове полета, които се намират в същия ред. Всяка стойност на чуждестранните ключови области трябва изрично да се посочва съответната стойност на ключа родител. Ако това условие е изпълнено, тогава на базата данни е в референтна цялост. контрол, който реализира сървъра.

- columns_table
списък на колони в таблицата, включена в външен ключ; символ на разделяне колони - запетая.

- pktable
таблица, която съдържа ключа родител.

- columns_ptable
майка ключ списък колона.

графа са външните бутони и родителят трябва да са съвместими, т.е.

  • имат същия брой колони;
  • видове чуждестранни основните графи, трябва да съответстват на вида на колоната ключ родител.

- правило
правило, което може да се определи стойността на външен ключ полета, когато сделката ГСД в таблицата родител. [КАСКАДА | ОГРАнИЧАВАТ | SET NULL | Липса на действие | Настройка по подразбиране]. СУБД контролира стойностите на полетата, свързани ( "дъщерни") масите по време на актуализацията или изтриване на данни в таблицата родител.

правило КАСКАДА

правило SQL КАСКАДА трябва да се използва, ако е необходимо в съответните таблици за актуализиране или изтриване на записи при актуализиране или изтриване на записи в таблицата родител. Т.е. какво се случва с рекорд в таблицата родител, същото нещо ще се случи с рекорд в таблицата с дете.

управляват ОГРАнИЧАВАТ

Правило SQL ОГРАнИЧАВАТ трябва да се използва, ако е необходимо, за да се предотврати отстраняването на таблицата родител записва наличието на свързани записи в таблицата с дете.

Правилото, NULL

Ако описанието на външен ключ правило използват праговете NULL. записите в таблицата на детето ще се нулират при актуализиране или изтриване на съответните записи от таблицата родител. Разбира се, това правило ще бъдат удовлетворени, ако полетата на таблицата дете е позволено.

правило не се предприемат действия

Правило SET DEFAULT

В колоната (ите) на записите външните дъщерно маса се въвеждат ключови стойности на колони по подразбиране, създаването на масата (DEFAULT параметър). Ако стойността не е определена, изключение е хвърлен.

Създаване на външен ключ външен ключ може да бъде както с масата, когато на масата вече е създадена от родителя, както и отделно. Когато създадете външен ключ отделно от масата, трябва да използвате оператора "ALTER TABLE таблица_име ДОБАВИ ОГРАНИЧЕНИЯ foreign_key външен ключ.".

Често се използват външни ключове, отнасящи се до първични ключове, това е добра стратегия. В този случай, външни ключове са свързани не само с ключа родител, който се отнасят; те се свързват към специфичен ред на таблицата родител, където се намира ключа.

Ние ще създадем три маси. Потребителите Ръководство за потребителя водещи стоки стоки и работна маса с сметки / фактури фактури. Таблица с фактури ще се съхраняват записите, които сочат към потребителски идентификатори и стоки. Като база данни с помощта на MySQL.

SQL скриптове за създаване на таблици

За маса "фактури" ще създаде външни ключове, които осигуряват обновявате архивите каскадни при обновяване съответните записи от таблицата родител, но блокира премахването на "записите майки." По този начин, всички промени в таблицата с потребители и стоките, автоматично ще бъдат отразени в "фактури" на масата. Но ако стоките поръчани или, ако потребителят има предвид, записа майка не може да бъде изтрита.

Създаване на външен ключ

Чуждестранните ключове външен ключ могат да бъдат създадени с помощта на следната SQL-скрипт:

Също така, външен ключ "фактури" маса, можете да създадете промяна в таблицата, описващ сценария.

Нека се опитаме да добавите запис към таблица на контактната: