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

SQL - SE EXISTE UPDATE ELSE INSERT INTO


  1. Crie um UNIQUE restrição em seu subs_email coluna, se ainda não existir:
    ALTER TABLE subs ADD UNIQUE (subs_email)
    

  2. Use INSERT ... ON DUPLICATE KEY UPDATE :
    INSERT INTO subs
      (subs_name, subs_email, subs_birthday)
    VALUES
      (?, ?, ?)
    ON DUPLICATE KEY UPDATE
      subs_name     = VALUES(subs_name),
      subs_birthday = VALUES(subs_birthday)
    

Você pode usar a função VALUES(col_name) na cláusula UPDATE para se referir a valores de coluna da parte INSERT do INSERT ... ONDUPLICATE KEY UPDATE - dev.mysql.com
  1. Observe que usei marcadores de posição de parâmetro no lugar de literais de string, pois realmente deve usar instruções parametrizadas para defender-se contra ataques de injeção de SQL .