Manuel A. Estevez Fernandez escribió:
> juan wrote:
>> <div class="moz-text-flowed" style="font-family: -moz-fixed">Manuel A.  
>> Estevez Fernandez escribió:
>>> Me gustaria saber como puedo definir como un trigger sobre una tabla  
>>> que cuando  inserte cierto valor en una columna este cree el otro  
>>> trigger que va a actuar sobre otra tabla, y una vez que haga un  
>>> update a la primera tabla, el trigger elimine a otra funcion. 
>>> .........
>>
>> Perdona la respuesta, pero porque tienes que hacer esta práctica???

> La tabla sobre la cual esta la funcion que envié, se ejecuta  
> constantemente mientras que la otra tabla en donde se haranlos  
> movimientos sera muy temporalmente. Así que no encuentro sentido a  
> mantenerla ahi ejecutandose todo el tiempo. Ademas que no se que tanto  
> pueda pegarle en el desempeño a mi sistema el tener que estar ejecutando  
> un procedimiento inecesario todo el tiempo.

Lo que propones es peor idea, porque cada vez que haces CREATE TRIGGER o
DROP TRIGGER se toma un lock exclusivo en la tabla, y por lo tanto
impides que cualquier otra operacion concurrente pueda operar en la
tabla.

(A todo esto, el codigo del trigger que tienes no es muy bueno tampoco;
lo del select max() no funciona bien cuando tienes dos o mas ejecutando
concurrentemente el mismo codigo.  Usa currval() para obtener el valor
de una secuencia, de una columna que debes haber declarado con tipo
SERIAL.)

-- 
Alvaro Herrera                         http://www.flickr.com/photos/alvherre/
"The Postgresql hackers have what I call a "NASA space shot" mentality.
 Quite refreshing in a world of "weekend drag racer" developers."
(Scott Marlowe)
--
TIP 1: para suscribirte y desuscribirte, visita 
http://archives.postgresql.org/pgsql-es-ayuda

Responder a