MySQL MariaDB

Използване на уникални ограничения на MySQL

Използване на уникални ограничения на MySQL
MySQL CONSTRAINT се отхвърля, за да опише правилата, които разрешават или ограничават стойностите в полета, които могат да съдържат или ограничават данните, които могат да бъдат въведени в редовете. Целта на налагането на ограничения е да се запази доверието в базата данни. Един от тях е UNIQUE ограничението.

УНИКАЛНОТО ограничение гарантира, че почти всички елементи в дадено поле се различават помежду си. За поле или група полета УНИКАЛНИТЕ и ГРАНИЧНИТЕ КЛЮЧОВЕ взаимно осигуряват индивидуалност. Въпреки това можем да имаме няколко УНИКАЛНИ ограничения във всяка таблица, макар че вместо това има един ПРИМАРЕН КЛЮЧ за всяка таблица. Нека го научим, като изпробваме някои примери.

Уникално ограничение чрез Workbench:

На първо място, трябва да научим как да добавяме уникални ограничения към таблицата, докато използваме MySQL Workbench 8.0. Отворете новоинсталирания MySQL Workbench 8.0 и го свържете към базата данни.

В областта на заявката трябва да напишете командата по-долу, за да създадете таблица „Лице“. Тази таблица има 4 колони с един първичен ключ. Трябва да посочим една уникална колона. Както можете да видите, ние изчистихме колоната „Id“ като колоната „UNIQUE“:

>> СЪЗДАЙТЕ ТАБЛИЦА Лице (ID int ОСНОВЕН КЛЮЧ НЕ НУЛЕН, LastName varchar (255) NOT NULL, FirstName varchar (255), Age int, UNIQUE (ID));

Сега е създадена таблицата „Лице“ със своята „УНИКАЛНА“ колона „ИД“. Можете да намерите таблицата под „Навигатор“ и „Схеми“, докато сте изброени в опцията „Таблици“.

Докато вмъквате записите, когато докоснете бутона „Прилагане“, той ще прегледа вмъкнатите записи, както е показано по-долу. Можете да видите, че имаме един дублиран запис на редове 3 и 4, който има същия „ID“. Докоснете бутона „Прилагане“, за да приложите промените.

В изображението по-долу генерира грешка, че колоната „ID“ е дублирана, което е стойността „13“.

След коригиране на записа, когато приложите промените, той ще работи правилно.

Уникално ограничение чрез обвивката на командния ред:

В командния ред на MySQL ще добавяме UNIQUE ключове към една или няколко колони. Първо отворете командния ред, за да видите всеки от тях в примерите по-долу. Въведете паролата си, за да използвате командната обвивка.

Пример 01: В единична колона

В рамките на този синтаксис, както в спецификацията на колона, ние използваме УНИКАЛНИЯ термин, който искате да приложите закона за уникалността. След като вмъкнем или променим стойност, която създава дубликати в конкретната колона, модификацията ще бъде отказана от MySQL и ще бъде дадено и изключение. В този конкретен лимит ще има ограничение за колона. И можете да използвате това, за да приложите и уникалното правило на едно поле. Ето синтаксис за UNIQUE ключ с една колона:

>> CREATE TABLE table_name (col datatype UNIQUE, col data type);

Нека създадем таблица „доставчик“ в базата данни „данни“ с три колони в нея. Колоната „ID“ е дефинирана като „УНИКАЛНА“.

>> СЪЗДАЙТЕ ТАБЛИЦА данни.доставчик (id INT AUTO_INCREMENT NOT NULL UNIQUE, Name VARCHAR (50) NOT NULL, Area VARCHAR (50));

При проверка можете да видите, че таблицата все още няма записи.

>> ИЗБЕРЕТЕ * ОТ данни.доставчик;

Нека вмъкнем записите в таблицата. Първият запис ще бъде вмъкнат в таблицата плавно, както е показано по-долу.

Вторият запис ще бъде вмъкнат отново гладко, тъй като няма дублиращи се стойности в колоната „ID“. От друга страна, той приема същата стойност, която използва в първата заявка в колона „Площ“.

При вмъкването на третия запис ние предоставихме дублираната стойност „1“, както предоставихме в първия оператор за вмъкване. Ще генерира грешка, че колоната „ID“ получава дублирана стойност, както е показано на изображението по-долу.

Докато проверявате отново, можете да видите, че таблицата има само записа на първите две оператори за вмъкване. Въпреки че няма запис от третото вмъкване.

>> ИЗБЕРЕТЕ * ОТ данни.доставчик;

Пример 02: В множество колони

С този формат след термина UNIQUE прилагаме разделен със запетая набор от колони в скоби. Съставът на стойностите в полето col1 и col2 се използва от MySQL за определяне на уникалността.

>> СЪЗДАВАНЕ НА ТАБЛИЦА име на таблица (тип тип данни col1, тип данни тип col2, УНИКАЛНО (col1, col2));

Създавахме таблица „министър“ в базата данни „данни“ с пет колони. Колоната „ID“ е дефинирана като „УНИКАЛНА“ и „ОСНОВНА“. Ключовата дума „CONSTRAINT“ се използва за назоваване на уникално ключово ограничение като „uc_add_sal“. Ключовата дума „UNIQUE“ се използва за дефиниране на UNIQUE ограничение за колоните, посочени в скобите, e.ж., Адрес и „Заплата“. Сега имаме общо три колони с ограничение „UNIQUE“.

>> СЪЗДАЙТЕ ТАБЛИЦА данни.министър (в средата INT AUTO_INCREMENT ОСНОВЕН КЛЮЧ НЕ НУЛЕН УНИКАЛЕН, Име VARCHAR (50) НЕ НУЛЕН, Адрес VARCHAR (50), Работа VARCHAR (50), Заплата VARCHAR (50), ОГРАНИЧЕНИЕ uc_add_sal UNIQUE (Адрес, Заплата));

При проверка на таблицата можете да видите, че в момента тя е празна.

>> ИЗБЕРЕТЕ * ОТ данни.министър;

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

Въведете друг уникален запис без дублиращи се стойности в която и да е колона, както е показано по-долу.

Това не влияе, когато въвеждаме дублиращите се стойности за колоните, които нямат ограничение „UNIQUE“. Погледнете заявката по-долу. Той има дублирана стойност в колоната „Име“ и „Работа“. Работи правилно, защото тези две колони нямат дефинирано ограничение „UNIQUE“.

От друга страна, когато вмъкваме дублираната стойност, напр.ж., „13“ и „Rawalpindi“, ще генерира грешка, както е показано по-долу. Това е така, защото „13“ и „Rawalpindi“ са посочени по-рано.

При проверка имаме само три записа в таблицата, вмъкнати от първите три заявки.

>> ИЗБЕРЕТЕ * ОТ данни.министър;

Заключение:

Изпълнихме изящно всички примери за дефиниране на UNIQUE ограничения върху единичната и множество колони, докато използвахме MySQL Workbench 8.0 и черупка на клиента на командния ред на MySQL. Надяваме се, че няма да получите проблеми, докато решавате проблеми, свързани с УНИКАЛНИ ключове.

OpenTTD срещу Simutrans
Създаването на собствена транспортна симулация може да бъде забавно, релаксиращо и изключително примамливо. Ето защо трябва да сте сигурни, че изпробв...
Урок за OpenTTD
OpenTTD е една от най-популярните бизнес симулационни игри там. В тази игра трябва да създадете прекрасен транспортен бизнес. Въпреки това, ще започне...
SuperTuxKart за Linux
SuperTuxKart е страхотно заглавие, създадено да ви предостави безплатно изживяването на Mario Kart във вашата Linux система. Играта е доста предизвика...