Što INSERT ON DUPLICATE KEY UPDATE radi u MySQL-u?

Sto Insert On Duplicate Key Update Radi U Mysql U



Dok rade s MySQL bazom podataka, korisnici se povremeno mogu susresti s pogreškom kršenja dupliciranog ključa kada pokušavaju umetnuti novi zapis u tablicu. Ova se pogreška pojavljuje kada red s istim primarnim ključem ili jedinstvenim ključem već postoji. Međutim, ovaj se problem može riješiti ažuriranjem postojećih zapisa s novim vrijednostima. U takvim slučajevima, omogućavanje ' UMETNI NA DUPLIKAT AŽURIRANJA KLJUČA ” učinkovito će riješiti ovaj problem.

Ovaj post će pokazati što je 'INSERT ON DUPLICATE KEY UPDATE' i kako radi u MySQL-u.







Što INSERT ON DUPLICATE KEY UPDATE radi u MySQL-u?

U MySQL-u, UMETNI NA DUPLIKAT AŽURIRANJA KLJUČA je napredna značajka naredbe INSERT koja kombinira dvije funkcionalnosti u jednu operaciju. Na primjer, umeće zapis u određenu tablicu ako dati zapis već ne postoji. Međutim, ako željeni zapis već postoji, ažurirat će postojeći zapis s novom vrijednošću.



Kako bi omogućili značajku INSERT ON DUPLICATE KEY UPDATE, korisnici moraju slijediti dolje navedenu sintaksu:



UMETNUTI U [ naziv_tablice ] ( [ stupac_1 ] , [ stupac_2 ] , ... )
VRIJEDNOSTI ( [ val_1 ] , [ val_2 ] , ... )
PRI AŽURIRANJU DUPLIKATA KLJUČA [ stupac_1 ] = [ val_1 ] , [ stupac_2 ] = [ val_2 ] , ...;





Navedite naziv tablice, nazive stupaca i vrijednosti po vašem izboru umjesto table_name, col_1, col_2, … i val_1, val_2, … itd.

Primjer: Kako koristiti značajku INSERT ON DUPLICATE KEY UPDATE u MySQL?



Prvo se povežite s MySQL bazom podataka s odgovarajućim privilegijama, a zatim izvršite donju naredbu za dohvaćanje podataka tablice 'linuxhint_author':

IZABERI * FROM linuxhint_author;

Naredba select dohvaća sve zapise tablice “linuxhint_author”:

Sada pokrenite sljedeću SQL naredbu za umetanje ili ažuriranje određenog zapisa u tablici 'linuxhint_author', s omogućenom značajkom 'ON DUPLICATE KEY UPDATE':

INSERT INTO linuxhint_author ( iskaznica , ime, dob, rang autora, email )
VRIJEDNOSTI ( 6 , 'Alex Johnson' , 29 , 3 , 'alex@example.com' )
PRI AŽURIRANJU DUPLIKATA KLJUČA
naziv = VRIJEDNOSTI ( Ime ) ,
dob = VRIJEDNOSTI ( dob ) ,
autorRank = VRIJEDNOSTI ( autorRank ) ,
email = VRIJEDNOSTI ( elektronička pošta ) ;

Budući da navedeni zapis već ne postoji u tablici ‘linuxhint_author’, on će biti uspješno umetnut u odabranu tablicu:

Umetnimo dvostruki zapis i vidimo kako ' PRI AŽURIRANJU DUPLIKATA KLJUČA ” funkcija rada u MySQL-u:

INSERT INTO linuxhint_author ( iskaznica , ime, dob, rang autora, email )
VRIJEDNOSTI ( 3 , 'Michael Johnson' , 28 , 4 , 'michael@example.com' )
PRI AŽURIRANJU DUPLIKATA KLJUČA
naziv = VRIJEDNOSTI ( Ime ) ,
dob = VRIJEDNOSTI ( dob ) ,
autorRank = VRIJEDNOSTI ( autorRank ) ,
email = VRIJEDNOSTI ( elektronička pošta ) ;

Iz donjeg isječka jasno se može vidjeti da je već postojeći zapis uspješno ažuriran novim vrijednostima:

Značajka 'INSERT ON DUPLICATE KEY' također se može primijeniti na određeni stupac umjesto na cijeli zapis:

INSERT INTO linuxhint_author ( iskaznica , rang autora )
VRIJEDNOSTI ( 3 , 2 )
NA DUPLICATU AŽURIRANJA KLJUČA authorRank = VRIJEDNOSTI ( autorRank ) ;

U gornjem kodu, “authorRank” autora s ID-om “3” ažurira se na novu vrijednost “2”:

Ovako funkcionira značajka 'INSERT ON DUPLICATE KEY UPDATE' u MySQL-u.

Zaključak

U MySQL-u, UMETNI NA DUPLIKAT AŽURIRANJA KLJUČA je napredna značajka koja nam omogućuje kombiniranje funkcionalnosti umetanja novog retka i ažuriranja/modificiranja već postojećeg retka u jednoj operaciji. Ova značajka pomaže korisnicima da izbjegnu pogrešku 'kršenja dupliciranog ključa' kada pokušavaju umetnuti novi redak u određenu tablicu. Ovaj post je objasnio što je 'INSERT ON DUPLICATE KEY UPDATE' i kako radi u MySQL-u.