Ipasok ng MySQL Huwag pansinin ang Dobleng Key

Mysql Insert Ignore Duplicate Key



Mayroong madalas na magkasalungat na data sa mga talahanayan o mga hanay ng kinalabasan. Nakakatagal din upang maitama, at madalas na iwasan ang paulit-ulit na mga tala. Kinikilala ang mga duplicate na tala at tinatanggal ang mga ito mula sa alinmang talahanayan ay kinakailangan. Ipapaliwanag ng seksyong ito kung paano maiiwasan ang pagdoble ng data mula sa paglitaw sa loob ng isang talahanayan at kung paano aalisin ang kasalukuyang mga duplicate na tala. Sa gabay na ito, matututunan mo kung paano gamitin ang sugnay na INSERT IGNORE upang maiwasan ang error.

Syntax:

Narito ang syntax para sa INSERT IGNORE query.







>>Ipasok ang IGNORE SA table_name(col1, col2, col3)VALUES(halaga_list),(halaga_list),(halaga_list);

I-INSERT ang IGNORE sa pamamagitan ng Workbench:

Buksan ang iyong MySQL Workbench 8.0 mula sa iyong system at ikonekta ito sa halimbawa ng database.





Sa lugar ng utos, kailangan mong lumikha ng isang talahanayan na empleyado na may apat na haligi kung saan ang isa sa kanila ay dapat na tinukoy bilang UNIQUE. Subukan ang query sa ibaba sa lugar ng query ng navigator upang likhain ang talahanayan na ito. Piliin ang buong query at i-click ang flash sign upang maipatupad ito.





>>GUMAWA NG TABLE na empleyado(ID int PRIMARY KEY HINDI NUL, Pangalan ng varchar(limampu)HINDI NULO, Age Varchar(limampu), Varchar ng suweldo(limampu), UNIQUE(ID));

Sa paggawa, mahahanap mo ang empleyado ng talahanayan sa loob ng listahan sa ilalim ng pagpipilian ng Mga Talahanayan sa ilalim ng data ng database.



Sa view ng grid, maaari mong ipasok ang mga tala nang hindi nagta-type ng anumang query. Kaya, buksan ang view ng grid ng empleyado ng mesa at magdagdag ng ilang mga tala dito tulad ng ipinakita sa ibaba. Naipasok namin ang lahat ng mga natatanging tala nang walang anumang mga duplicate. Pindutin ang pindutang 'Ilapat' upang mailapat ang mga pagbabago.

Ang isang bagong window ay bubuksan kasama ang mga nauugnay na query na nauugnay sa mga talaang naipasok namin sa itaas. Ang screen na ito ay maaaring tinatawag na isang Screen ng pagsusuri. Kung nais mong baguhin ang isang bagay, magagawa mo ito rito. Kung hindi man, pindutin ang pindutang Ilapat upang maipatupad ang mga query.

Tulad ng nakikita mo, ang query ay naisakatuparan nang matagumpay at ang mga tala ay nai-save sa database at ang talahanayan na empleyado. Nakabuo ito ng isang error kung nagdagdag kami ng anumang duplicate na halaga sa ID ng haligi. Tapikin ang pindutan ng Tapusin.

Ito ay tungkol sa view ng grid. Ngayon, magsasama kami ng mga tala sa pamamagitan ng lugar ng query. Samantala, naglalagay kami ng mga duplicate na tala sa oras na ito upang suriin ang output. Kaya, sinubukan namin ang query sa ibaba INSERT, kung saan mayroon kaming dalawang listahan ng mga halaga. Ang parehong mga listahan ng mga halaga ay may parehong halaga sa haligi na 'ID'. Piliin ang query at pindutin ang flash sign upang maipatupad ang query.

Ang query ay hindi gagana nang tama, at bubuo ito ng isang error dahil sa mga na-duplicate na halaga sa INSERT command tulad ng ipinakita sa imahe.

Ngayon subukan ang parehong query sa itaas na may INSERT IGNORE na sugnay at ipatupad ito tulad ng ipinakita.

Maaari mong makita na hindi ito bumubuo ng isang error sa lugar ng output, ngunit nagbibigay ito ng babala na naglalaman ang utos ng mga duplicate na halaga.

I-refresh ang view ng grid ng empleyado ng talahanayan. Ang INSERT IGNORE query ay nagtrabaho nang kalahati. Ipinasok nito ang unang listahan ng mga halaga sa talahanayan, ngunit ang pangalawang listahan ng mga halaga ay hindi pinansin dahil sa paulit-ulit na halagang 13.

Ipasok ang IGNORE sa pamamagitan ng Command-Line Shell:

Upang maunawaan ang konseptong ito, buksan natin ang MySQL command-line client shell sa iyong system. Sa pagtatanong, i-type ang iyong MySQL password upang simulang magtrabaho dito.

Oras na upang lumikha ng isang talahanayan. Subukan ang utos sa ibaba upang gawin ito. Lumikha kami ng isang talahanayan na pinangalanang 'ministro' habang ang isa sa mga haligi nito ay may isang UNIQUE hadlang. Malinaw na tatanggapin lamang ng ID ng haligi ang mga natatanging halaga at hindi ang mga duplicate na halaga.

>>GUMAWA ng data ng TABLE.ministeryo(Mid INT PRIMARY KEY UNIQUE HINDI NUL, Pangalan VARCHAR(Apat lima), City VARCHAR(Apat lima));

Ang query ay gumagana nang naaangkop, at ang talahanayan ay nilikha. Upang maunawaan ang sugnay na INSERT IGNORE, kailangan mo munang makita ang paggana ng simpleng INSERT command. Kung gumagamit ka ng utos na INSERT na magsingit ng maraming data ng impormasyon sa isang talahanayan, sinuspinde ng MySQL ang transaksyon at bubuo ng isang pagbubukod kung may naganap na error sa buong pagpoproseso. Bilang kinahinatnan, ang talahanayan ay walang naidagdag na mga hilera dito. Ipasok natin ang unang tala sa ministro ng talahanayan gamit ang ipinakitang query sa ibaba. Ang query ay gagana nang matagumpay sapagkat ang talahanayan ay kasalukuyang blangko, at walang record na katapat.

Tulad ng UN ID ng haligi, kapag sinubukan namin ang tagubilin sa ibaba sa command-line shell, makakabuo ito ng isang error. Ito ay dahil naidagdag namin ang halagang 11 sa nakaraang query, at dahil sa UNIQUE key hindi ito pinapayagan sa amin na idagdag muli ang umuulit na halaga.

Samakatuwid, sa pagsuri sa talahanayan, maaari nating makita na ang talahanayan ay may 1 record lamang na naidagdag ng unang query na INSERT.

>>PUMILI*MULA sa data.minister;

Sa kabaligtaran, kung gumagamit ka ng sugnay na INSERT IGNORE, ang hindi tamang mga hilera ng data na nagpapalitaw ng error ay hindi mapansin at papasok lamang sa mga tumpak. Sa utos sa ibaba, ginagamit namin ang INSERT IGNORE na utos upang maiwasan ang pagdaragdag ng mga paulit-ulit na halaga sa talahanayan at huwag pansinin ang error. Tulad ng nakikita mo, ang unang listahan ng mga halaga ay may isang duplicate na halagang 11 na katulad sa nakaraang query. Habang ang pangalawang listahan ng mga halaga ay natatangi, magpapakita ito ng 1 record na naipasok sa talahanayan, na kung saan ay ang pangalawang listahan ng mga halaga. Ipinapahiwatig din ng MySQL na 1 record lamang ang naipasok, at 1 babala ang nabuo sa mensahe. Maaari mong ipalagay na kung gumagamit kami ng sugnay na INSERT IGNORE, nagbibigay ang MySQL ng isang babala.

Tulad ng nakikita mo mula sa output sa ibaba, mayroon lamang kaming dalawang mga tala sa talahanayan na ito - ang unang listahan ng mga halagang ibinigay sa query sa itaas, na napapansin.

>>PUMILI*MULA sa data.minister;

Konklusyon:

Natapos na namin ang lahat ng kinakailangang halimbawa ng INSERT IGNORE sa mga duplicate na halaga sa pamamagitan ng MySQL Workbench at MySQL command-line client shell.