sql >> Base de Datos >  >> RDS >> Mysql

SQL - SI EXISTE ACTUALIZAR DE LO CONTRARIO INSERTAR EN

  1. Cree un UNIQUE restricción en su subs_email columna, si aún no existe:

    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)
    

Puede usar la función VALUES(col_name) en la cláusula UPDATE para hacer referencia a los valores de columna de la parte INSERT de INSERT... ONDUPLICATE KEY UPDATE - dev.mysql.com

  1. Tenga en cuenta que he usado marcadores de posición de parámetros en lugar de literales de cadena, como uno realmente debería usar declaraciones parametrizadas para defenderse de los ataques de inyección SQL .