Co dělá INSERT ON DUPLICATE KEY UPDATE v MySQL?

Co Dela Insert On Duplicate Key Update V Mysql



Při práci s databází MySQL mohou uživatelé občas narazit na chybu narušení duplicitního klíče při pokusu o vložení nového záznamu do tabulky. K této chybě dochází, když již existuje řádek se stejným primárním klíčem nebo jedinečným klíčem. Tento problém však lze vyřešit aktualizací stávajících záznamů novými hodnotami. V takových případech povolení „ VLOŽTE PŘI AKTUALIZACI DUPLIKÁTNÍHO KLÍČE ” tento problém účinně vyřeší.

Tento příspěvek ukáže, co je „INSERT ON DUPLICATE KEY UPDATE“ a jak to funguje v MySQL.







Co dělá INSERT ON DUPLICATE KEY UPDATE v MySQL?

V MySQL je VLOŽTE PŘI AKTUALIZACI DUPLIKÁTNÍHO KLÍČE je pokročilá funkce příkazu INSERT, která kombinuje dvě funkce do jediné operace. Například vloží záznam do konkrétní tabulky, pokud daný záznam již neexistuje. Pokud však požadovaný záznam již existuje, aktualizuje stávající záznam novou hodnotou.



Chcete-li povolit funkci INSERT ON DUPLICATE KEY UPDATE, musí uživatelé dodržovat níže uvedenou syntaxi:



VLOŽ DO [ název_tabulky ] ( [ sloupec 1 ] , [ sloupec_2 ] ,... )
HODNOTY ( [ val_1 ] , [ val_2 ] ,... )
PŘI AKTUALIZACI DUPLIKÁTNÍHO KLÍČE [ sloupec 1 ] = [ val_1 ] , [ sloupec_2 ] = [ val_2 ] , ...;





Zadejte název tabulky, názvy sloupců a hodnoty podle svého výběru namísto název_tabulky, sloupec_1, sloupec_2, … a hodnota_1, hodnota_2, … atd.

Příklad: Jak používat funkci INSERT ON DUPLICATE KEY UPDATE v MySQL?



Nejprve se připojte k databázi MySQL s příslušnými oprávněními a poté spusťte níže uvedený příkaz k načtení dat tabulky „linuxhint_author“:

VYBRAT * Z linuxhint_author;

Příkaz select načte všechny záznamy tabulky „linuxhint_author“:

Nyní spusťte následující příkaz SQL pro vložení nebo aktualizaci konkrétního záznamu v tabulce ‚linuxhint_author‘ se zapnutou funkcí „ON DUPLICATE KEY UPDATE“:

INSERT INTO linuxhint_author ( id , jméno, věk, autorRank, email )
HODNOTY ( 6 , 'Alex Johnson' , 29 , 3 , 'alex@example.com' )
PŘI AKTUALIZACI DUPLIKÁTNÍHO KLÍČE
jméno = HODNOTY ( název ) ,
věk = HODNOTY ( stáří ) ,
autorRank = HODNOTY ( autorRank ) ,
email = HODNOTY ( e-mailem ) ;

Vzhledem k tomu, že zadaný záznam již neexistuje v tabulce ‚linuxhint_author‘, bude úspěšně vložen do vybrané tabulky:

Vložíme duplicitní záznam a uvidíme, jak „ PŘI AKTUALIZACI DUPLIKÁTNÍHO KLÍČE ” práce funkcí v MySQL:

INSERT INTO linuxhint_author ( id , jméno, věk, autorRank, email )
HODNOTY ( 3 , 'Michael Johnson' , 28 , 4 , 'michael@example.com' )
PŘI AKTUALIZACI DUPLIKÁTNÍHO KLÍČE
jméno = HODNOTY ( název ) ,
věk = HODNOTY ( stáří ) ,
autorRank = HODNOTY ( autorRank ) ,
email = HODNOTY ( e-mailem ) ;

Z níže uvedeného úryvku je jasně vidět, že již existující záznam byl úspěšně aktualizován o nové hodnoty:

Funkci „INSERT ON DUPLICATE KEY“ lze také použít na konkrétní sloupec namísto celého záznamu:

INSERT INTO linuxhint_author ( id , autorRank )
HODNOTY ( 3 , 2 )
PŘI AKTUALIZACI DUPLIKÁTNÍHO KLÍČE autorRank = HODNOTY ( autorRank ) ;

Ve výše uvedeném kódu se „authorRank“ autora s ID „3“ aktualizuje na novou hodnotu „2“:

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

Závěr

V MySQL je VLOŽTE PŘI AKTUALIZACI DUPLIKÁTNÍHO KLÍČE je pokročilá funkce, která nám umožňuje spojit funkci vložení nového řádku a aktualizaci/úpravu již existujícího řádku v jediné operaci. Tato funkce pomáhá uživatelům vyhnout se chybě „narušení duplicitního klíče“ při pokusu o vložení nového řádku do konkrétní tabulky. Tento příspěvek vysvětlil, co je „INSERT ON DUPLICATE KEY UPDATE“ a jak to funguje v MySQL.