Čo robí INSERT ON DUPLICATE KEY UPDATE v MySQL?

Co Robi Insert On Duplicate Key Update V Mysql



Pri práci s databázou MySQL môžu používatelia občas naraziť na chybu narušenia duplicitného kľúča pri pokuse o vloženie nového záznamu do tabuľky. Táto chyba sa vyskytuje, keď už existuje riadok s rovnakým primárnym kľúčom alebo jedinečným kľúčom. Tento problém však možno vyriešiť aktualizáciou existujúcich záznamov o nové hodnoty. V takýchto prípadoch povoľte „ VLOŽTE PRI AKTUALIZÁCII DUPLIKÁTU KĽÚČA ” tento problém efektívne vyrieši.

Tento príspevok ukáže, čo je „INSERT ON DUPLICATE KEY UPDATE“ a ako to funguje v MySQL.







Čo robí INSERT ON DUPLICATE KEY UPDATE v MySQL?

V MySQL je VLOŽTE PRI AKTUALIZÁCII DUPLIKÁTU KĽÚČA je pokročilá funkcia príkazu INSERT, ktorá spája dve funkcie do jednej operácie. Napríklad vloží záznam do konkrétnej tabuľky, ak daný záznam ešte neexistuje. Ak však požadovaný záznam už existuje, aktualizuje existujúci záznam novou hodnotou.



Ak chcete povoliť funkciu INSERT ON DUPLICATE KEY UPDATE, používatelia musia postupovať podľa nižšie uvedenej syntaxe:



VLOŽIŤ DO [ názov_tabulky ] ( [ stĺpec 1 ] , [ stĺpec_2 ] ,... )
HODNOTY ( [ val_1 ] , [ val_2 ] ,... )
PRI AKTUALIZÁCII DUPLIKÁTU KĽÚČA [ stĺpec 1 ] = [ val_1 ] , [ stĺpec_2 ] = [ val_2 ] , ...;





Zadajte názov tabuľky, názvy stĺpcov a hodnoty podľa vášho výberu namiesto table_name, col_1, col_2, … a val_1, val_2, … atď.

Príklad: Ako používať funkciu INSERT ON DUPLICATE KEY UPDATE v MySQL?



Najprv sa pripojte k databáze MySQL s príslušnými oprávneniami a potom vykonajte príkaz uvedený nižšie, aby ste získali údaje z tabuľky „linuxhint_author“:

VYBRAŤ * Z linuxhint_author;

Príkaz select načíta všetky záznamy tabuľky „linuxhint_author“:

Teraz spustite nasledujúci príkaz SQL na vloženie alebo aktualizáciu konkrétneho záznamu v tabuľke „linuxhint_author“ so zapnutou funkciou „ON DUPLICATE KEY UPDATE“:

INSERT INTO linuxhint_author ( id , meno, vek, autorHodnotenie, email )
HODNOTY ( 6 , 'Alex Johnson' , 29 , 3 , 'alex@example.com' )
PRI AKTUALIZÁCII DUPLIKÁTU KĽÚČA
meno = HODNOTY ( názov ) ,
vek = HODNOTY ( Vek ) ,
autorRank = HODNOTY ( autorRank ) ,
email = VALUES ( email ) ;

Keďže zadaný záznam ešte neexistuje v tabuľke „linuxhint_author“, úspešne sa vloží do vybranej tabuľky:

Vložíme duplicitný záznam a uvidíme, ako „ PRI AKTUALIZÁCII DUPLIKÁTU KĽÚČA ” práca funkcií v MySQL:

INSERT INTO linuxhint_author ( id , meno, vek, autorHodnotenie, email )
HODNOTY ( 3 , 'Michael Johnson' , 28 , 4 , 'michael@example.com' )
PRI AKTUALIZÁCII DUPLIKÁTU KĽÚČA
meno = HODNOTY ( názov ) ,
vek = HODNOTY ( Vek ) ,
autorRank = HODNOTY ( autorRank ) ,
email = VALUES ( email ) ;

Z nižšie uvedeného úryvku je jasne vidieť, že už existujúci záznam je úspešne aktualizovaný o nové hodnoty:

Funkciu „INSERT ON DUPLICATE KEY“ možno použiť aj na konkrétny stĺpec namiesto celého záznamu:

INSERT INTO linuxhint_author ( id , autorRank )
HODNOTY ( 3 , 2 )
PRI AKTUALIZÁCII DUPLIKÁTOVÉHO KĽÚČA Poradie autora = HODNOTY ( autorRank ) ;

Vo vyššie uvedenom kóde sa „authorRank“ autora s ID „3“ aktualizuje na novú hodnotu „2“:

Takto funguje funkcia „INSERT ON DUPLICATE KEY UPDATE“ v MySQL.

Záver

V MySQL je VLOŽTE PRI AKTUALIZÁCII DUPLIKÁTU KĽÚČA je pokročilá funkcia, ktorá nám umožňuje spojiť funkcionalitu vloženia nového riadku a aktualizácie/úpravy už existujúceho riadku v jednej operácii. Táto funkcia pomáha používateľom vyhnúť sa chybe „porušenie duplicitného kľúča“ pri pokuse o vloženie nového riadku do konkrétnej tabuľky. Tento príspevok vysvetlil, čo je „VLOŽTE PRI AKTUALIZÁCII DUPLIKÁTNEHO KĽÚČA“ a ako to funguje v MySQL.