RE: cambiar query insert por un update si el registro ya existe

From: "Javier Ochoa \(uolsinectis\)" <javier_8a(at)uolsinectis(dot)com(dot)ar>
To: "'Miguel'" <mmiranda(at)123(dot)com(dot)sv>, <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: cambiar query insert por un update si el registro ya existe
Date: 2008-04-23 15:46:18
Message-ID: 20080423154603.378191B55D@eitan.capfed2.sinectis.com.ar
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Yo creo que deberias en la funcion hacer una consulta primero (puede ser
Select Count(*))
Si es mayor a 0 es que existe entonces haces un Update.
Si es menor a 0 es que no existe y haces un Insert.
Saludos

Javier Ochoa
Ing. en Sistemas de Información
Analista de Sistemas
Jugador de Futbol
Jugador de Ajedrez
Guitarrero, Cuyano y Cantor

Msn: javier_8a(at)hotmail(dot)com
Mail: javier_8a(at)uolsinectis(dot)com(dot)ar
Otro: jorgejavier8a(at)yahoo(dot)com(dot)ar


-----Mensaje original-----
De: pgsql-es-ayuda-owner(at)postgresql(dot)org
[mailto:pgsql-es-ayuda-owner(at)postgresql(dot)org] En nombre de Miguel
Enviado el: Miércoles, 23 de Abril de 2008 12:10
Para: pgsql-es-ayuda(at)postgresql(dot)org
Asunto: [pgsql-es-ayuda] cambiar query insert por un update si el registro
ya existe

Saludos a todos, existe alguna forma de cambiar un query insert por un
update si la fila ya existe? Algo asi como insert or update tabla values
(xxxxx)
Me explico
digamos la tabla tarifa (idorigen int, iddestino int, tarifa numeric) y
tengo el archivo cvs tarifas.csv:
1,1,0.10
1,2,0.20
1,3,0.10
etc

Tengo un perl script que lee el archivo y ejecuta inserts en la tabla usando
un funcion inserta_tarifas(int,int,numeric), yo quiero usar el mismo archivo
independientemente si es para insertar nuevas o actualizar las antiguas de
manera que si la combinacion 1,1,0.10 ya existe y la primera fila que esta
en el archivo es 1,1,0.20, entonces un regla (o
trigger) deberia verificar si la fila ya existe y ejecutar un update en
lugar de insertar otro registro y que al final en la tabla no quede 1,1,0.10
1,1,0.20 sino que 1,1,0.20

Si necesitan mayor detalle favor hacermelo saber
---
Miguel
--
TIP 9: visita nuestro canal de IRC #postgresql-es en irc.freenode.net

--
No virus found in this incoming message.
Checked by AVG.
Version: 7.5.524 / Virus Database: 269.23.3/1391 - Release Date: 22/04/2008
08:15 a.m.

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Juan Carlos Barranco de Paz 2008-04-23 17:53:07 RE: data warehouse
Previous Message Jenaro Centeno Gomez 2008-04-23 15:18:57 Re: cambiar query insert por un update si el registro ya existe