Hola a todos.
Les agradeceria mucho si me pueden ayudar con el siguiente problema.
Tengo una base de datos, con un campo como un tipo id el cual con otra aplicacion lo utilizo para realizar procedimientos (respaldos de bases de datos etc).
El problema es el siguiente, necesito mediante un disparador , que cuando se haga un update a un registro de la base de datos, se cambie ese campo mencionado al valor 2. Pero el problema es que el disparador me cambia a todos los registros por el valor 2.
Creo que el problema es por el update. No es muy recomendable realizar update dentro de disparadores, pero no se me ocurre otra solucion.
Agradeceria mucho si me pueden ayudar.
Aca dejo el codigo:
CREATE OR REPLACE FUNCTION cambia_codigo() RETURNS TRIGGER AS $cambia_codigo$
BEGIN
IF (OLD.codigo_id = 0) THEN
UPDATE contratos set codigo_id=2 WHERE codigo_id=0;
END IF;
RETURN NULL;
END;
$cambia_codigo$LANGUAGE plpgsql;
CREATE TRIGGER cambia_codigo AFTER UPDATE ON contratos FOR EACH ROW
EXECUTE PROCEDURE cambia_codigo();
Muchas Gracias!