Mitä INSERT ON DUPLICATE KEY UPDATE tekee MySQL:ssä?

Mita Insert On Duplicate Key Update Tekee Mysql Ssa



Käyttäessään MySQL-tietokantaa käyttäjät voivat toisinaan kohdata kaksoisavaimen rikkomusvirheen yrittäessään lisätä uutta tietuetta taulukkoon. Tämä virhe ilmenee, kun rivi, jolla on sama ensisijainen avain tai yksilöllinen avain, on jo olemassa. Tämä ongelma voidaan kuitenkin korjata päivittämällä olemassa olevat tietueet uusilla arvoilla. Tällaisissa tapauksissa ' INSERT ON DUPLICATE AVAINPÄIVITYS ”-ominaisuus ratkaisee tämän ongelman tehokkaasti.

Tämä viesti osoittaa, mikä on 'INSERT ON DUPLICATE KEY UPDATE' ja kuinka se toimii MySQL:ssä.







Mitä INSERT ON DUPLICATE KEY UPDATE tekee MySQL:ssä?

MySQL:ssä INSERT ON DUPLICATE AVAINPÄIVITYS on INSERT-käskyn edistynyt ominaisuus, joka yhdistää kaksi toimintoa yhdeksi toiminnoksi. Se esimerkiksi lisää tietueen tiettyyn taulukkoon, jos annettua tietuetta ei vielä ole olemassa. Jos haluttu tietue kuitenkin on jo olemassa, se päivittää olemassa olevan tietueen uudella arvolla.



Jotta INSERT ON DUPLICATE KEY UPDATE -ominaisuus otetaan käyttöön, käyttäjien on noudatettava alla annettua syntaksia:



LAITTAA SISÄÄN [ taulukon_nimi ] ( [ sarake_1 ] , [ sarake_2 ] ,... )
ARVOT ( [ val_1 ] , [ val_2 ] ,... )
KOHDE-AVAIMEN PÄIVITYS [ sarake_1 ] = [ val_1 ] , [ sarake_2 ] = [ val_2 ] ,...;





Määritä haluamasi taulukon nimi, sarakkeiden nimet ja arvot taulukon_nimi, sarake_1, sarake2, … ja val_1, arvo_2, … jne. tilalle.

Esimerkki: Kuinka käyttää INSERT ON DUPLICATE KEY UPDATE -ominaisuutta MySQL:ssä?



Muodosta ensin yhteys MySQL-tietokantaan asianmukaisilla oikeuksilla ja suorita sitten alla oleva komento hakeaksesi 'linuxhint_author' -taulukon tiedot:

VALITSE * FROM linuxhint_author;

Select-komento hakee kaikki 'linuxhint_author'-taulukon tietueet:

Suorita nyt seuraava SQL-komento lisätäksesi tai päivittääksesi tietyn tietueen 'linuxhint_author' -taulukkoon, 'ON DUPLICATE KEY UPDATE' -ominaisuuden ollessa käytössä:

INSERT INTO linuxhint_author ( id , nimi, ikä, authorRank, sähköpostiosoite )
ARVOT ( 6 , 'Alex Johnson' , 29 , 3 , 'alex@example.com' )
KOHDE-AVAIMEN PÄIVITYS
nimi = ARVOT ( nimi ) ,
ikä = ARVOT ( ikä ) ,
authorRank = ARVOT ( AuthorRank ) ,
sähköposti = ARVOT ( sähköposti ) ;

Koska määritettyä tietuetta ei vielä ole 'linuxhint_author' -taulukossa, se lisätään onnistuneesti valittuun taulukkoon:

Lisätään tietueen kaksoiskappale ja katsotaan kuinka ' KOHDE-AVAIMEN PÄIVITYS ”ominaisuus toimii MySQL:ssä:

INSERT INTO linuxhint_author ( id , nimi, ikä, authorRank, sähköpostiosoite )
ARVOT ( 3 , 'Michael Johnson' , 28 , 4 , 'michael@example.com' )
KOHDE-AVAIMEN PÄIVITYS
nimi = ARVOT ( nimi ) ,
ikä = ARVOT ( ikä ) ,
authorRank = ARVOT ( AuthorRank ) ,
sähköposti = ARVOT ( sähköposti ) ;

Alla olevasta katkelmasta voidaan selvästi nähdä, että jo olemassa oleva tietue on päivitetty onnistuneesti uusilla arvoilla:

'INSERT ON DUPLICATE KEY' -ominaisuutta voidaan käyttää myös tiettyyn sarakkeeseen koko tietueen sijaan:

INSERT INTO linuxhint_author ( id , authorRank )
ARVOT ( 3 , 2 )
PÄÄLLÄ DUPLIKAATIN AVAINPÄIVITYS authorRank = ARVOT ( AuthorRank ) ;

Yllä olevassa koodissa tunnuksella '3' olevan tekijän 'authorRank' päivitetään uuteen arvoon '2':

Näin 'INSERT ON DUPLICATE KEY UPDATE' -ominaisuus toimii MySQL:ssä.

Johtopäätös

MySQL:ssä INSERT ON DUPLICATE AVAINPÄIVITYS on edistyksellinen ominaisuus, jonka avulla voimme yhdistää uuden rivin lisäämisen ja jo olemassa olevan rivin päivittämisen/muokkauksen yhdellä toiminnolla. Tämä ominaisuus auttaa käyttäjiä välttämään 'kaksoisavaimen rikkomus' -virheen yrittäessään lisätä uutta riviä tiettyyn taulukkoon. Tämä viesti on selittänyt, mikä on 'INSERT ON DUPLICATE KEY UPDATE' ja kuinka se toimii MySQL:ssä.