Синтаксис:
Ето синтаксиса на заявката INSERT IGNORE.
>> INSERT IGNORE INTO table_name (col1, col2, col3) VALUES (value_list), (value_list), (value_list);INSERT IGNORE чрез Workbench:
Отворете MySQL Workbench 8.0 от вашата система и го свържете към екземпляра на базата данни.
В командната област трябва да създадете таблица „Служител“ с четири колони, където една от тях трябва да бъде посочена като „УНИКАЛНА“. Опитайте заявката по-долу в областта за заявки на навигатора, за да създадете тази таблица. Изберете цялата заявка и щракнете върху флаша, за да я изпълните.
>> СЪЗДАВАНЕ НА ТАБЛИЦА Служител (ID int ПЪРВИЧЕН КЛЮЧ НЕ НУЛЕН, Име varchar (50) НЕ NULL, Възраст Varchar (50), Заплата varchar (50), УНИКАЛЕН (ID));
При създаването можете да намерите таблицата „служител“ в списъка под опцията „Таблици“ под базата данни „данни“.
В мрежата можете да въведете записите, без да въвеждате никаква заявка. И така, отворете мрежата на таблица „служител“ и добавете някои записи в нея, както е показано по-долу. Въведохме всички уникални записи без никакви дубликати. Натиснете бутона „Прилагане“, за да приложите промените.
Ще се отвори нов прозорец със съответните заявки, свързани със записите, които сме въвели по-горе. Този екран може да се нарече екран „Преглед“. Ако искате да промените нещо, можете да го направите тук. В противен случай натиснете бутона Приложи, за да изпълните заявките.
Както можете да видите, заявката е изпълнена успешно и записите се записват в базата данни и нейната таблица „Служител“. Щеше да генерира грешка, ако бяхме добавили дублирана стойност в колоната „ID“. Докоснете бутона „Finish“.
Всичко беше свързано с изгледа на мрежата. Сега ще вмъкваме записи през областта на заявката. Междувременно този път вмъкваме дублирани записи, за да проверим изхода. И така, опитахме заявката по-долу „INSERT“, където имаме два списъка със стойности. И двата списъка със стойности имат една и съща стойност в колоната „ID“. Изберете заявката и натиснете флаша, за да изпълните заявката.
Заявката няма да работи правилно и ще генерира грешка поради дублираните стойности в командата INSERT, както е показано на изображението.
Сега опитайте същата заявка по-горе с клаузата INSERT IGNORE и я изпълнете, както е представено.
Можете да видите, че не генерира грешка в изходната област, но дава предупреждение, че командата съдържа дублирани стойности.
Опресняване на мрежата на таблица „Служител“. Заявката INSERT IGNORE е работила наполовина. Той вмъкна първия списък със стойности в таблицата, но вторият списък със стойности беше игнориран поради повтарящата се стойност „13“.
INSERT IGNORE чрез Shell на командния ред:
За да разберем тази концепция, нека отворим клиентската обвивка на командния ред на MySQL във вашата система. При поискване въведете паролата си за MySQL, за да започнете да работите по нея.
Сега е време да създадете таблица. Опитайте командата по-долу, за да го направите. Създадохме таблица с име „министър“, докато една от колоните ѝ има УНИКАЛНО ограничение. Ясно е, че колоната „ID“ ще приема само уникалните стойности, а не дублиращите се стойности.
>> СЪЗДАЙТЕ ТАБЛИЦА данни.министър (в средата INT ОСНОВЕН КЛЮЧ УНИКАЛЕН НЕ НУЛЕН, Име VARCHAR (45), Град VARCHAR (45));
Заявката работи по подходящ начин и таблицата е създадена. За да разберете клаузата INSERT IGNORE, първо трябва да видите как работи простата команда INSERT. Ако използвате командата INSERT за вмъкване на няколко информационни данни в таблица, MySQL спира транзакцията и генерира изключение, ако по време на обработката се случи грешка. В резултат на това в таблицата няма добавени редове. Нека вмъкнем първия запис в таблицата „министър“, като използваме показаната по-долу заявка. Заявката ще работи успешно, тъй като в момента таблицата е празна и няма запис, с който да се анализира.
Тъй като колоната „ID“ е УНИКАЛНА, когато опитаме инструкциите по-долу в командния ред, тя ще генерира грешка. Това е така, защото сме добавили стойността „11“ в предишната заявка и поради UNIQUE ключа не ни позволява да добавяме повторената стойност отново.
Следователно при проверка на таблицата можем да видим, че таблицата има само 1 запис, добавен от първата INSERT заявка.
>> ИЗБЕРЕТЕ * ОТ данни.министър;
И обратно, ако използвате клаузата INSERT IGNORE, неправилните редове с данни, които задействат грешката, ще бъдат пренебрегнати и ще въведат само точните. В командата по-долу използваме командата INSERT IGNORE, за да избегнем добавянето на повтарящи се стойности в таблицата и да пропуснем грешката. Както можете да видите, първият списък със стойности има дублирана стойност „11“, същата като в предишната заявка. Докато вторият списък със стойности е уникален, той ще покаже 1 запис, вмъкнат в таблицата, който е вторият списък със стойности. MySQL също така показва, че е вмъкнат само 1 запис и в съобщението се генерира 1 предупреждение. След това можете да предположите, че ако използваме клаузата INSERT IGNORE, MySQL предоставя предупреждение.
Както можете да видите от изхода по-долу, в тази таблица имаме само два записа - първият списък със стойности, предоставен в горната заявка, който е пренебрегнат.
>> ИЗБЕРЕТЕ * ОТ данни.министър;
Заключение:
Направихме всички необходими примери за INSERT IGNORE на дублиращи се стойности чрез MySQL Workbench и клиентска обвивка на MySQL от командния ред.