MySQL MariaDB

MySQL ievietošana Ignorēt atslēgas dublikātu

MySQL ievietošana Ignorēt atslēgas dublikātu
Tabulās vai rezultātu kopās bieži ir pretrunīgi dati. Labot ir arī laikietilpīgi, un bieži ir jāizvairās no atkārtotiem ierakstiem. Ir nepieciešams identificēt ierakstu dublikātus un izdzēst tos no jebkuras tabulas. Šajā sadaļā tiks detalizēti aprakstīts, kā izvairīties no datu dublikātu parādīšanās tabulas iekšpusē un kā novērst pašreizējo ierakstu dublikātus. Šajā ceļvedī jūs uzzināsiet, kā izmantot klauzulu INSERT IGNORE, lai izvairītos no kļūdas.

Sintakse:

Šeit ir vaicājuma INSERT IGNORE sintakse.

>> INSERT IGNORE INTO table_name (col1, col2, col3) VALUES (value_list), (value_list), (value_list);

Ievietojiet IGNORE caur Workbench:

Atveriet MySQL Workbench 8.0 no savas sistēmas un pievienojiet to datu bāzes instancei.

Komandu apgabalā jums jāizveido tabula “Darbinieks” ar četrām kolonnām, kur viena no tām jānorāda kā “UNIKĀLA”. Izmēģiniet šo vaicājumu navigatora vaicājumu apgabalā, lai izveidotu šo tabulu. Atlasiet visu vaicājumu un noklikšķiniet uz zibspuldzes zīmes, lai to izpildītu.

>> IZVEIDOT GALDA Darbinieks (ID starp primāro atslēgu NULL, nosaukums varchar (50) NOT NULL, vecuma varchar (50), algu varchar (50), UNIQUE (ID));

Pēc izveidošanas tabulu “darbinieks” var atrast sarakstā zem opcijas “Galdi” zem datu bāzes “dati”.

Režģa skatā ierakstus var ievadīt, neievadot nevienu vaicājumu. Tātad atveriet tabulas “darbinieks” režģa skatu un pievienojiet tajā dažus ierakstus, kā parādīts zemāk. Mēs esam ievadījuši visus unikālos ierakstus bez dublikātiem. Lai lietotu izmaiņas, nospiediet pogu Lietot.

Tiks atvērts jauns logs ar attiecīgajiem vaicājumiem, kas saistīti ar ierakstiem, kurus esam ievadījuši iepriekš. Šo ekrānu var saukt par “Review” ekrānu. Ja vēlaties kaut ko mainīt, to varat izdarīt šeit. Pretējā gadījumā nospiediet pogu Lietot, lai izpildītu vaicājumus.

Kā redzat, vaicājums ir veiksmīgi izpildīts un ieraksti tiek saglabāti datu bāzē un tās tabulā “Darbinieks”. Tas būtu radījis kļūdu, ja kolonnā “ID” mēs būtu pievienojuši vērtību dublikātu. Pieskarieties pogai Pabeigt.

Tas viss bija par režģa skatu. Tagad mēs ievietosim ierakstus, izmantojot vaicājuma apgabalu. Tikmēr mēs šoreiz ievietojām ierakstu dublikātus, lai pārbaudītu izvadi. Tātad, mēs esam izmēģinājuši zemāk esošo vaicājumu “INSERT”, kur mums ir divi vērtību saraksti. Abiem vērtību sarakstiem kolonnā “ID” ir vienāda vērtība. Atlasiet vaicājumu un nospiediet zibspuldzes zīmi, lai izpildītu vaicājumu.

Vaicājums nedarbosies pareizi, un tas radīs kļūdu komandā INSERT dublēto vērtību dēļ, kā parādīts attēlā.

Tagad izmēģiniet to pašu iepriekšējo vaicājumu ar klauzulu INSERT IGNORE un izpildiet to, kā parādīts.

Var redzēt, ka tas neizraisa kļūdu izvades apgabalā, bet tas brīdina, ka komandā ir vērtību dublikāti.

Atsvaidziniet tabulas “Darbinieks” režģa skatu. Vaicājums INSERT IGNORE ir nostrādājis pusi. Tas ievietoja tabulā pirmo vērtību sarakstu, bet otrais vērtību saraksts tika ignorēts atkārtotās vērtības “13” dēļ.

Ievietojiet IGNORE, izmantojot komandrindas apvalku:

Lai saprastu šo jēdzienu, atveriet MySQL komandrindas klienta čaulu savā sistēmā. Pēc jautājuma ievadiet MySQL paroli, lai sāktu strādāt ar to.

Tagad ir pienācis laiks izveidot tabulu. Lai to izdarītu, izmēģiniet zemāk esošo komandu. Mēs esam izveidojuši tabulu ar nosaukumu “ministrs”, kamēr vienai no tās kolonnām ir UNIKĀLS ierobežojums. Ir skaidrs, ka kolonnā “ID” tiks pieņemtas tikai unikālās vērtības, nevis vērtību dublikāti.

>> IZVEIDOT TABULAS datus.ministrs (vidējā INT PRIMĀRĀS ATSLĒGAS UNIKĀLA NAV NULL, nosaukums VARCHAR (45), City VARCHAR (45));

Vaicājums darbojas atbilstoši, un tabula ir izveidota. Lai saprastu klauzulu INSERT IGNORE, vispirms ir jāpārliecinās, kā darbojas vienkāršā komanda INSERT. Ja izmantojat komandu INSERT, lai tabulā ievietotu vairākus informācijas datus, MySQL pārtrauc darījumu un ģenerē izņēmumu, ja apstrādes laikā rodas kļūda. Rezultātā tabulai nav pievienotas rindas. Ievietosim pirmo ierakstu tabulā “ministrs”, izmantojot zemāk parādīto vaicājumu. Vaicājums darbosies veiksmīgi, jo tabula pašlaik ir tukša, un nav ieraksta, ar kuru varētu salīdzināt.

Tā kā kolonna “ID” ir UNIKĀLA, mēģinot komandrindas čaulā zemāk redzamo instrukciju, tā radīs kļūdu. Tas ir tāpēc, ka iepriekšējā vaicājumā esam pievienojuši vērtību “11”, un atslēgas UNIKĀLĀ dēļ tas neļauj mums atkārtoto vērtību pievienot vēlreiz.

Tādējādi, pārbaudot tabulu, mēs varam redzēt, ka tabulā ir tikai 1 ieraksts, ko pievieno pirmais INSERT vaicājums.

>> SELECT * FROM dati.ministrs;

Un otrādi, ja izmantojat klauzulu INSERT IGNORE, kļūdainās datu rindas, kas izraisa kļūdu, tiks ignorētas un ievadīs tikai precīzās. Zemāk esošajā komandā mēs izmantojām komandu INSERT IGNORE, lai tabulā nepievienotu atkārtotas vērtības un nepamanītu kļūdu. Kā redzat, pirmajam vērtību sarakstam ir tāda pati vērtība kā 11, kas bija iepriekšējā vaicājumā. Lai gan otrais vērtību saraksts ir unikāls, tajā tiks parādīts 1 ieraksts, kas ievietots tabulā, kas ir otrais vērtību saraksts. MySQL arī norāda, ka ir ievietots tikai 1 ieraksts un ziņojumā tiek ģenerēts 1 brīdinājums. Pēc tam varat pieņemt, ka, ja mēs izmantojam klauzulu INSERT IGNORE, MySQL sniedz brīdinājumu.

Kā redzat no zemāk esošās izejas, šajā tabulā ir tikai divi ieraksti - pirmais vērtību saraksts, kas norādīts iepriekš minētajā vaicājumā, un tas tiek ignorēts.

>> SELECT * FROM dati.ministrs;

Secinājums:

Mēs esam izdarījuši visus nepieciešamos INSERT IGNORE piemērus par vērtību dublikātiem, izmantojot MySQL Workbench un MySQL komandrindas klienta čaulu.

Atdariniet peles klikšķus, virzot kursoru, izmantojot operētājsistēmā Windows 10 bezklikšķu peli
Peles vai tastatūras lietošana nepareizā pozā, ja to lieto pārmērīgi daudz, var izraisīt daudz veselības problēmu, tostarp spriedzi, karpālā kanāla si...
Pievienojiet peles žestus operētājsistēmai Windows 10, izmantojot šos bezmaksas rīkus
Pēdējos gados datori un operētājsistēmas ir ievērojami attīstījušās. Bija laiks, kad lietotājiem bija jāizmanto komandas, lai pārvietotos pa failu pār...
Kontrolējiet un pārvaldiet peles kustību starp vairākiem monitoriem sistēmā Windows 10
Dual Display Mouse Manager ļauj kontrolēt un konfigurēt peles kustību starp vairākiem monitoriem, palēninot tās kustību robežas tuvumā. Windows 10/8 ļ...