MySQL MariaDB

MySQL Insert Ignore Duplicate Key

MySQL Insert Ignore Duplicate Key
Există adesea date contradictorii în tabele sau seturi de rezultate. De asemenea, consumă mult timp pentru a corecta, iar înregistrările deseori repetate trebuie evitate. Este necesară identificarea înregistrărilor duplicate și ștergerea acestora din oricare dintre tabele. Această secțiune va detalia cum să evitați ca datele duplicate să apară în interiorul unui tabel și cum să eliminați înregistrările duplicate actuale. În acest ghid, veți învăța cum să utilizați clauza INSERT IGNORE pentru a evita eroarea.

Sintaxă:

Iată sintaxa pentru interogarea INSERT IGNORE.

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

INSERAȚI IGNORE prin Workbench:

Deschideți MySQL Workbench 8.0 din sistemul dvs. și conectați-l la instanța bazei de date.

În zona de comandă, trebuie să creați un tabel „Angajat” cu patru coloane în care una dintre ele trebuie să fie specificată ca „UNIC”. Încercați interogarea de mai jos în zona de interogare a navigatorului pentru a crea acest tabel. Selectați întreaga interogare și faceți clic pe semnul flash pentru al executa.

>> CREAȚI TABEL Angajat (ID-ul INT CHEIE PRIMARĂ NU NUL, Nume varchar (50) NU NUL, Vârsta Varchar (50), Salariu varchar (50), UNIC (ID));

La creare, puteți găsi tabelul „angajat” în listă sub opțiunea „Tabelele” de sub „date” a bazei de date.

În vizualizarea grilă, puteți introduce înregistrările fără să tastați nicio interogare. Deci, deschideți vizualizarea în grilă a tabelului „angajat” și adăugați câteva înregistrări în acesta, așa cum se arată mai jos. Am introdus toate înregistrările unice fără duplicate. Apăsați butonul „Aplicați” pentru a aplica modificările.

Se va deschide o nouă fereastră cu interogările relevante legate de înregistrările pe care le-am introdus mai sus. Acest ecran poate fi numit ecran „Revizuire”. Dacă doriți să schimbați ceva, o puteți face aici. În caz contrar, apăsați butonul Aplicare pentru a executa interogările.

După cum puteți vedea, interogarea a fost executată cu succes și înregistrările sunt salvate în baza de date și în tabelul său „Angajat”. Ar fi generat o eroare dacă am fi adăugat o valoare duplicat în coloana „ID”. Atingeți butonul „Finalizare”.

Aici era vorba despre vizualizarea grilă. Acum, vom insera înregistrări prin zona de interogare. Între timp, am inserat înregistrări duplicate de această dată pentru a verifica rezultatul. Deci, am încercat interogarea „INSERT” de mai jos, unde avem două liste de valori. Ambele liste de valori au aceeași valoare la coloana „ID”. Selectați interogarea și apăsați semnul flash pentru a executa interogarea.

Interogarea nu va funcționa corect și va genera o eroare din cauza valorilor duplicate din comanda INSERT așa cum se afișează în imagine.

Acum încercați aceeași interogare de mai sus cu clauza INSERT IGNORE și executați-o așa cum a fost prezentată.

Puteți vedea că nu generează o eroare în zona de ieșire, dar oferă un avertisment că comanda conține valori duplicat.

Reîmprospătați vizualizarea în grilă a tabelului „Angajat”. Interogarea INSERT IGNORE a funcționat la jumătate. A inserat prima listă de valori în tabel, dar a doua listă de valori a fost ignorată din cauza valorii repetate „13”.

INSERAȚI IGNORE prin linia de comandă Shell:

Pentru a înțelege acest concept, să deschidem shell-ul clientului din linia de comandă MySQL din sistemul dvs. La întrebare, introduceți parola MySQL pentru a începe să lucrați la ea.

Acum este timpul să creați o masă. Încercați comanda de mai jos pentru a face acest lucru. Am creat un tabel numit „ministru”, în timp ce una dintre coloanele sale are o constrângere UNICĂ. Este clar că coloana „ID” va accepta doar valorile unice și nu valorile duplicate.

>> CREAȚI date de TABEL.ministru (Mid INT PRIMARY KEY UNIQUE NOT NULL, Nume VARCHAR (45), Oraș VARCHAR (45));

Interogarea funcționează corespunzător și tabelul a fost creat. Pentru a înțelege clauza INSERT IGNORE, trebuie să vedeți mai întâi funcționarea comenzii simple INSERT. Dacă utilizați comanda INSERT pentru a insera mai multe date de informații într-un tabel, MySQL suspendă tranzacția și generează o excepție dacă apare o eroare pe parcursul procesării. În consecință, tabelul nu are niciun rând adăugat. Să introducem prima înregistrare în tabelul „ministru” folosind interogarea de mai jos. Interogarea va funcționa cu succes deoarece tabelul este în prezent gol și nu există nicio înregistrare cu care să se asorteze.

Deoarece coloana „ID” este UNICĂ, atunci când încercăm instrucțiunea de mai jos pe shell-ul liniei de comandă, va genera o eroare. Acest lucru se datorează faptului că am adăugat valoarea „11” în interogarea anterioară și datorită cheii UNIQUE nu ne permite să adăugăm din nou valoarea repetată.

Prin urmare, la verificarea tabelului, putem vedea că tabelul are doar 1 înregistrare adăugată de prima interogare INSERT.

>> SELECT * DIN date.ministru;

În schimb, dacă utilizați clauza INSERT IGNORE, rândurile de date incorecte care declanșează eroarea vor fi trecute cu vederea și vor intra doar pe cele corecte. În comanda de mai jos, am folosit comanda INSERT IGNORE pentru a evita adăugarea de valori repetate în tabel și pentru a trece cu vederea eroarea. După cum puteți vedea, prima listă de valori are o valoare duplicat „11” la fel ca în interogarea anterioară. În timp ce a doua listă de valori este unică, va afișa 1 înregistrare inserată în tabel, care este a doua listă de valori. MySQL indică, de asemenea, că a fost inserată doar o înregistrare și că este generat 1 avertisment în mesaj. Puteți presupune că, dacă folosim clauza INSERT IGNORE, MySQL oferă un avertisment.

După cum puteți vedea din rezultatul de mai jos, avem doar două înregistrări în acest tabel - prima listă de valori furnizate în interogarea de mai sus, care este ignorată.

>> SELECT * DIN date.ministru;

Concluzie:

Am făcut toate exemplele necesare de INSERT IGNORE pe valori duplicate prin MySQL Workbench și MySQL din linia de comandă client shell.

How to reverse Mouse and Touchpads scrolling direction in Windows 10
Mouse and Touchpads not only make computing easy but more efficient and less time-consuming. We cannot imagine a life without these devices, but still...
How to change Mouse pointer and cursor size, color & scheme on Windows 10
The mouse pointer and cursor in Windows 10 are very important aspects of the operating system. This can be said for other operating systems as well, s...
Motoare de jocuri gratuite și open source pentru dezvoltarea jocurilor Linux
Acest articol va acoperi o listă de motoare de jocuri gratuite și open source care pot fi utilizate pentru dezvoltarea jocurilor 2D și 3D pe Linux. Ex...