Re: [PHP-ES] UPSERT con PHP
[email protected] (Jonathan Tapicer)
| Newsgroups | php.general.es |
|---|---|
| Message-ID | <[email protected]> |
Hola,
Podés usar ON DUPLICATE KEY UPDATE, sería algo así para tu ejemplo:
INSERT INTO ejemplo (animal, color, precio) VALUES ('OSO', 'AZUL', '$8000')
ON DUPLICATE KEY UPDATE precio = '$8000';
Pero... el ON DUPLICATE KEY UPDATE se dispara sólo cuando se detecta
un duplicado ya sea por PK o por UNIQUE. Por lo que en tu caso
deberías cambiar la PK para que cubra sólo los campos animal y color,
en lugar de los tres.
Más info sobre esto:
http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html
Saludos,
Jonathan
2010/6/21 hahmael <[email protected]>:
> Hola, alguien sabe como hacer UPSERT en mysql?
>
> la logica para insertar un registro pero is 2 campos de ese nuevo registro
> son iguales, actualizar el campo 3.
>
> Ejemplo
>
> Tabla ejemplo
>
> id PK - ANIMAL -COLOR -PRECIO
>
> 01- OSO - AZUL - $5000
>
> INSERT INTO ejemplo (animal, color, precio) VALUES ('OSO', 'AZUL', '$8000')
>
> Esto haria un nuevo insert, digamos que son unas 90 consultas producidas a
> traves de un bucle con PHP(este es un ejemplo de tabla, realmente el
> proyecto es con direcciones), pero lo que quero es que si 2 campos que no
> son llaves estan duplicados (ya existen) actualizarlo solamente en ese caso
> el campo PRECIO Sino hacer el nuevo INSERT.
>
> Ya mire REPLACE, vi ON UPDATE KEY que no me serviria en este caso, e incluso
> combinaciones teniendo una tabla de respaldo.
>
> Espero alguien pueda ayudarme con un ejemplo claro ya que son muchos
> inserts.
>
>
>
> --
> Agradecido.
>
> Hahmael Tâher.
>