Mysql
 sql >> Database >  >> RDS >> Mysql

Aggiunta a un campo di database invece di sovrascriverlo (funzione MySQL UPDATE)

Prova a usare INSERT ... ON DUPLICATE KEY UPDATE

Se si specifica ON DUPLICATE KEY UPDATE e viene inserita una riga che causerebbe un valore duplicato in un indice UNIQUE o PRIMARY KEY, MySQL esegue un UPDATE della vecchia riga.

Ad esempio, se la colonna a è dichiarata UNIQUE e contiene il valore 1, le due istruzioni seguenti hanno un effetto simile:

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;

(Gli effetti non sono identici per una tabella in cui a è una colonna con incremento automatico. Con una colonna con incremento automatico, un INSERT istruzione aumenta il valore di incremento automatico ma UPDATE no.)

La clausola ON DUPLICATE KEY UPDATE può contenere più assegnazioni di colonne, separate da virgole.

Con ON DUPLICATE KEY UPDATE, il valore delle righe interessate per riga è 1 se la riga viene inserita come una nuova riga e 2 se viene aggiornata una riga esistente.

Spero che questo aiuterà.