sql >> Databáze >  >> RDS >> Mysql

Přidání do databázového pole místo jeho přepsání (funkce MySQL UPDATE)

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.




  1. Jak vytvořit soubor XML z dotazů na data MySQL?

  2. Integrace PostgreSQL s autentizačními systémy

  3. Pomocí SELECT SCOPE_IDENTITY() v ADODB Recordset

  4. Zabránit odvození vlastních podstatných jmen v PostgreSQL?