Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

Insert/Update transaction

Estas en el tema de Insert/Update transaction en el foro de PostgreSQL en Foros del Web. Hola, quería saber si era posible modificar este codigo para obtener algo más cercano y optimo a lo que necesito (soy nuevo en postgresql): BEGIN; ...
  #1 (permalink)  
Antiguo 22/02/2011, 09:05
 
Fecha de Ingreso: diciembre-2009
Mensajes: 5
Antigüedad: 14 años, 11 meses
Puntos: 0
Pregunta Insert/Update transaction

Hola, quería saber si era posible modificar este codigo para obtener algo más cercano y optimo a lo que necesito (soy nuevo en postgresql):

BEGIN;
SAVEPOINT sp1;
INSERT INTO table1 VALUES(1, 'A');
ROLLBACK TO sp1;
UPDATE table1 SET field1 = 'A' WHERE field_id = 1;
COMMIT;

La idea es la siguiente:

Inicio transaccion;
Si el registro N existe, hago UPDATE sino, hago INSERT;
Cierro transaccion:

Mil gracias!!!
  #2 (permalink)  
Antiguo 22/02/2011, 09:15
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Insert/Update transaction

Cual es el problema de validar sin transacciones?

las transacciones no son usadas comunmente para este tipo de cosas.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 22/02/2011, 10:18
 
Fecha de Ingreso: diciembre-2009
Mensajes: 5
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Insert/Update transaction

Ninguno... la idea es hacer el insert o el update y resolverlo en una operacion... copie el ejemplo del manual de Postgresql... en realidad, es UN insert o UN update, al ser atómico, puede o no ser dentro transaccion.

Etiquetas: insert, rollback, savepoint, update, transacciones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:18.