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.