Zkuste použít INSERT ... ON DUPLICATE KEY UPDATE
Pokud zadáte ON DUPLICATE KEY UPDATE a vloží se řádek, který by způsobil duplicitní hodnotu v UNIQUE indexu nebo PRIMARY KEY, MySQL provede UPDATE starého řádku.
Pokud je například sloupec a deklarován jako UNIKÁTNÍ a obsahuje hodnotu 1, mají následující dva příkazy podobný účinek:
INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE c=c+1;
UPDATE table SET c=c+1 WHERE a=1;
(Efekty nejsou identické pro tabulku, kde a je sloupec s automatickým přírůstkem. U sloupce s automatickým přírůstkem INSERT
příkaz zvýší hodnotu automatického přírůstku, ale UPDATE
ne.)
Klauzule ON DUPLICATE KEY UPDATE může obsahovat přiřazení více sloupců oddělených čárkami.
S ON DUPLICATE KEY UPDATE je hodnota ovlivněných řádků na řádek 1, pokud je řádek vložen jako nový řádek, a 2, pokud je aktualizován existující řádek.
Doufám, že to pomůže.