Insertar en una tabla de MySQL o actualizar si existe

Quiero añadir una fila a una tabla de la base de datos, pero si existe una fila con la misma clave única quiero actualizar la fila.

Por ejemplo,

insert into table (id, name, age) values(1, "A", 19)

Digamos que la clave única es id, y en mi base de datos hay una fila con id = 1. En ese caso quiero actualizar esa fila con estos valores. Normalmente esto da un error. Si utilizo insert IGNORE ignorará el error, pero seguirá sin actualizar.

Solución

Utilice INSERT ... ON DUPLICATE KEY UPDATE

CUESTA:

INSERT INTO table (id, name, age) VALUES(1, "A", 19) ON DUPLICATE KEY UPDATE    
name="A", age=19
Comentarios (23)

Compruebe el REEMPLAZO

http://dev.mysql.com/doc/refman/5.0/en/replace.html

REPLACE into table (id, name, age) values(1, "A", 19)
Comentarios (7)

Prueba esto:

INSERT INTO table (id, name, age) VALUES (1, 'A', 19) ON DUPLICATE KEY UPDATE id = id + 1;

Espero que esto ayude.

Comentarios (6)