Kaj počne INSERT ON DUPLICATE KEY UPDATE v MySQL?

Kaj Pocne Insert On Duplicate Key Update V Mysql



Med delom z bazo podatkov MySQL lahko uporabniki občasno naletijo na napako kršitve podvojenega ključa, ko poskušajo vstaviti nov zapis v tabelo. Do te napake pride, ko vrstica z istim primarnim ključem ali edinstvenim ključem že obstaja. Vendar pa je to težavo mogoče odpraviti s posodobitvijo obstoječih zapisov z novimi vrednostmi. V takih primerih omogočite » VSTAVITE NA POSODOBITEV DVOJNIKA KLJUČA ” bo učinkovito rešila to težavo.

Ta objava bo pokazala, kaj je »INSERT ON DUPLICATE KEY UPDATE« in kako deluje v MySQL.







Kaj počne INSERT ON DUPLICATE KEY UPDATE v MySQL?

V MySQL je VSTAVITE NA POSODOBITEV DVOJNIKA KLJUČA je napredna funkcija stavka INSERT, ki združuje dve funkciji v eno operacijo. Na primer, vstavi zapis v določeno tabelo, če dani zapis še ne obstaja. Če pa želeni zapis že obstaja, bo posodobil obstoječi zapis z novo vrednostjo.



Če želite omogočiti funkcijo INSERT ON DUPLICATE KEY UPDATE, morajo uporabniki upoštevati spodnjo sintakso:



VSTAVITE V [ ime_tabele ] ( [ col_1 ] , [ col_2 ] , ... )
VREDNOTE ( [ val_1 ] , [ val_2 ] , ... )
PRI POSODOBITVI PODVOJENEGA KLJUČA [ col_1 ] = [ val_1 ] , [ col_2 ] = [ val_2 ] , ...;





Določite ime tabele, imena stolpcev in vrednosti po vaši izbiri namesto table_name, col_1, col_2, … in val_1, val_2, … itd.

Primer: Kako uporabiti funkcijo POSODOBITVE PODVOJENEGA KLJUČA INSERT ON v MySQL?



Najprej se povežite z bazo podatkov MySQL z ustreznimi privilegiji in nato izvedite spodnji ukaz, da pridobite podatke tabele »linuxhint_author«:

IZBERI * OD linuxhint_author;

Ukaz select pridobi vse zapise tabele »linuxhint_author«:

Zdaj zaženite naslednji ukaz SQL, da v tabelo »linuxhint_author« vstavite ali posodobite določen zapis z omogočeno funkcijo »ON DUPLICATE KEY UPDATE«:

INSERT INTO linuxhint_author ( id , ime, starost, avtorRank, e-pošta )
VREDNOTE ( 6 , 'Alex Johnson' , 29 , 3 , 'alex@example.com' )
PRI POSODOBITVI PODVOJENEGA KLJUČA
ime = VREDNOSTI ( ime ) ,
starost = VREDNOTE ( starost ) ,
avtorRank = VREDNOSTI ( avtorRank ) ,
e-pošta = VREDNOSTI ( E-naslov ) ;

Ker navedeni zapis še ne obstaja v tabeli ‘linuxhint_author’, bo uspešno vstavljen v izbrano tabelo:

Vstavimo podvojeni zapis in poglejmo, kako » PRI POSODOBITVI PODVOJENEGA KLJUČA ” funkcija deluje v MySQL:

INSERT INTO linuxhint_author ( id , ime, starost, avtorRank, e-pošta )
VREDNOTE ( 3 , 'Michael Johnson' , 28 , 4 , 'michael@example.com' )
PRI POSODOBITVI PODVOJENEGA KLJUČA
ime = VREDNOSTI ( ime ) ,
starost = VREDNOTE ( starost ) ,
avtorRank = VREDNOSTI ( avtorRank ) ,
e-pošta = VREDNOSTI ( E-naslov ) ;

Iz spodnjega delčka je jasno razvidno, da je že obstoječi zapis uspešno posodobljen z novimi vrednostmi:

Funkcijo »INSERT ON DUPLICATE KEY« lahko uporabite tudi za določen stolpec namesto celotnega zapisa:

INSERT INTO linuxhint_author ( id , avtorRank )
VREDNOTE ( 3 , 2 )
PRI POSODOBITVI PODVOJENEGA KLJUČA avtorRank = VREDNOSTI ( avtorRank ) ;

V zgornji kodi se »authorRank« avtorja z ID-jem »3« posodobi na novo vrednost »2«:

Tako deluje funkcija »INSERT ON DUPLICATE KEY UPDATE« v MySQL.

Zaključek

V MySQL je VSTAVITE NA POSODOBITEV DVOJNIKA KLJUČA je napredna funkcija, ki nam omogoča kombinacijo funkcionalnosti vstavljanja nove vrstice in posodabljanja/spreminjanja že obstoječe vrstice v eni operaciji. Ta funkcija pomaga uporabnikom, da se izognejo napaki »podvojene kršitve ključa«, ko poskušajo vstaviti novo vrstico v določeno tabelo. V tej objavi je razloženo, kaj je »INSERT ON DUPLICATE KEY UPDATE« in kako deluje v MySQL.