Mida teeb INSERT ON DUPLICATE KEY UPDATE MySQL-is?

Mida Teeb Insert On Duplicate Key Update Mysql Is



MySQL-i andmebaasiga töötades võivad kasutajad uue kirje tabelisse sisestamisel aeg-ajalt ilmneda dubleeriva võtme rikkumise veaga. See tõrge ilmneb siis, kui sama primaarvõtme või kordumatu võtmega rida on juba olemas. Selle probleemi saab aga lahendada olemasolevate kirjete värskendamisega uute väärtustega. Sellistel juhtudel lubage ' SISESTAGE DUPLIKAATVÕTME VÄRSKENDUS ” funktsioon lahendab selle probleemi tõhusalt.

See postitus näitab, mis on 'SISESTAGE DUPLIKAATVÕTME VÄRSKENDUSSE' ja kuidas see MySQL-is töötab.







Mida teeb INSERT ON DUPLICATE KEY UPDATE MySQL-is?

MySQL-is on SISESTAGE DUPLIKAATVÕTME VÄRSKENDUS on INSERT-lause täiustatud funktsioon, mis ühendab kaks funktsiooni üheks toiminguks. Näiteks lisab see kirje konkreetsesse tabelisse, kui antud kirjet veel pole. Kui aga soovitud kirje on juba olemas, värskendab see olemasolevat kirjet uue väärtusega.



Funktsiooni INSERT ON DUPLICATE KEY UPDATE lubamiseks peavad kasutajad järgima alltoodud süntaksit:



INSERT INTO [ tabeli_nimi ] ( [ veerg_1 ] , [ veerg_2 ] , ... )
VÄÄRTUSED ( [ val_1 ] , [ val_2 ] , ... )
DUPLIKAATVÕTME VÄRSKENDUS [ veerg_1 ] = [ val_1 ] , [ veerg_2 ] = [ val_2 ] , ...;





Määrake oma valitud tabeli nimi, veergude nimed ja väärtused tabeli_nimi, veerg_1, veerg_2, … ja val_1, väärtus_2, … jne asemel.

Näide: kuidas kasutada MySQL-is funktsiooni INSERT ON DUPLICATE KEY UPDATE?



Esmalt looge ühendus MySQL-i andmebaasiga sobivate õigustega ja seejärel käivitage allolev käsk, et tuua tabeli 'linuxhint_author' andmed:

VALI * FROM linuxhint_author;

Valimiskäsk hangib kõik tabeli 'linuxhint_author' kirjed:

Nüüd käivitage järgmine SQL-käsk, et sisestada või värskendada konkreetset kirjet tabelis 'linuxhint_author', kui funktsioon 'ON DUPLICATE KEY UPDATE' on lubatud:

INSERT INTO linuxhint_author ( id , nimi, vanus, autorRank, e-post )
VÄÄRTUSED ( 6 , 'Alex Johnson' , 29 , 3 , 'alex@example.com' )
DUPLIKAATVÕTME UUENDUSEL
nimi = VÄÄRTUSED ( nimi ) ,
vanus = VÄÄRTUSED ( vanus ) ,
authorRank = VÄÄRTUSED ( AuthorRank ) ,
email = VÄÄRTUSED ( meili ) ;

Kuna määratud kirjet tabelis linuxhint_author veel ei eksisteeri, sisestatakse see edukalt valitud tabelisse:

Sisestame duplikaatkirje ja vaatame, kuidas DUPLIKAATVÕTME UUENDUSEL ” funktsioonide töö MySQL-is:

INSERT INTO linuxhint_author ( id , nimi, vanus, autorRank, e-post )
VÄÄRTUSED ( 3 , 'Michael Johnson' , 28 , 4 , 'michael@example.com' )
DUPLIKAATVÕTME UUENDUSEL
nimi = VÄÄRTUSED ( nimi ) ,
vanus = VÄÄRTUSED ( vanus ) ,
authorRank = VÄÄRTUSED ( AuthorRank ) ,
email = VÄÄRTUSED ( meili ) ;

Allolevast katkendist on selgelt näha, et juba olemasolevat kirjet värskendati edukalt uute väärtustega:

Funktsiooni „INSERT ON DUPLICATE KEY” saab rakendada ka konkreetsele veerule, mitte kogu kirjele:

INSERT INTO linuxhint_author ( id , authorRank )
VÄÄRTUSED ( 3 , 2 )
DUPLIKAATVÕTME UUENDUSEL authorRank = VÄÄRTUSED ( AuthorRank ) ;

Ülaltoodud koodis värskendatakse ID-ga '3' autori 'authorRank' uue väärtusega '2':

Nii töötab MySQL-is funktsioon 'INSERT ON DUPLICATE KEY UPDATE'.

Järeldus

MySQL-is on SISESTAGE DUPLIKAATVÕTME VÄRSKENDUS on täiustatud funktsioon, mis võimaldab meil ühendada ühe toiminguga uue rea lisamise ja juba olemasoleva rea ​​värskendamise/muutmise funktsioonid. See funktsioon aitab kasutajatel konkreetsesse tabelisse uue rea sisestamisel vältida tõrget 'dublikaatvõtme rikkumine'. See postitus on selgitanud, mis on 'SISESTAGE DUPLIKAATVÕTME VÄRSKENDUSSE' ja kuidas see MySQL-is töötab.