Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Adicionando a um campo de banco de dados em vez de sobrescrevê-lo (função MySQL UPDATE)


Tente usar INSERT ... ON DUPLICATE KEY UPDATE

Se você especificar ON DUPLICATE KEY UPDATE e for inserida uma linha que causaria um valor duplicado em um índice UNIQUE ou PRIMARY KEY, o MySQL executará um UPDATE da linha antiga.

Por exemplo, se a coluna a for declarada como UNIQUE e contiver o valor 1, as duas instruções a seguir terão efeito semelhante:
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;

(Os efeitos não são idênticos para uma tabela onde a é uma coluna de incremento automático. Com uma coluna de incremento automático, um INSERT instrução aumenta o valor de incremento automático, mas UPDATE não.)

A cláusula ON DUPLICATE KEY UPDATE pode conter várias atribuições de coluna, separadas por vírgulas.

Com ON DUPLICATE KEY UPDATE, o valor das linhas afetadas por linha é 1 se a linha for inserida como uma nova linha e 2 se uma linha existente for atualizada.

Espero que isso ajude.