-ow...@postgresql.org
[mailto:pgsql-es-ayuda-ow...@postgresql.org] En nombre de Alvaro Herrera
Enviado el: martes, 10 de marzo de 2015 16:17
Para: Esneiker Enriquez Cabrera
CC: 'POSTGRES'
Asunto: Re: [pgsql-es-ayuda] problema con trigger
Esneiker Enriquez Cabrera escribió:
> Hola amigo
Esneiker Enriquez Cabrera escribió:
> Hola amigos.
>
> Estoy tratando de hacer un trigger que en la inserción o la actualización de
> una tabla me ejecute una función pero al hacer insert o update me da el
> error:
>
> límite de profundidad de stack alcanzado
Oh, FFS.
Usa un trigger BEFORE, y m
creo que estas actualizando la tabla que tiene el triggers dentro de la
funcion , mira esta URL
http://www.depesz.com/2012/02/01/waiting-for-9-2-trigger-depth/
explican sobre el tema
saludos
El 10-03-2015 a las 16:16, Esneiker Enriquez Cabrera escribió:
Hola amigos.
Estoy tratando de hacer
each row, pues ahí
estaba el problema.
Saludos a todos.
De: Arcel Labrada Batista [mailto:alabra...@uci.cu]
Enviado el: viernes, 16 de diciembre de 2011 02:01:PM
Para: Lazaro Rubén García Martinez
CC: pgsql-es-ayuda@postgresql.org
Asunto: Re: [pgsql-es-ayuda] Problema con trigger
el trigger
el trigger deberías dispararlo solo con las inserciones, si lo tienes puesto
para que se dispare con las inserciones y las actualizaciones pues es claro que
realizará la operación dos veces, revisa y responde, además, cuando haces una
pregunta deberías poner el código para ayudarnos a ver donde
--- On Thu, 10/28/10, Carlos Joaniquet wrote:
From: Carlos Joaniquet
Subject: Re: [pgsql-es-ayuda] problema con trigger
To: "Virginia"
Cc: "Jaime Casanova" , "Ayuda"
Date: Thursday, October 28, 2010, 7:23 AM
Por qué razón no se deben utilizar los campos calcul
Excerpts from Carlos Joaniquet's message of jue oct 28 04:23:50 -0300 2010:
> Por qué razón no se deben utilizar los campos calculados?
> Es que en alguna de mis tablas existen varios :) que me recalculan gastos,
> base imponible, iva, etc de un registro factura cada vez que introduzco un
> apun
Hay varias razones Carlos, opino que la principal es que forzás
una dependencia entre atributos que no son PK , no cumple las formas
normales, esto conlleva a posibles errores de consistencia ante
modificaciones, también está el problema de espacio ocupado e innecesario,
redundancia digamos.
En to
Por qué razón no se deben utilizar los campos calculados?
Es que en alguna de mis tablas existen varios :) que me recalculan gastos, base
imponible, iva, etc de un registro factura cada vez que introduzco un apunte
contable que hace referencia a esa factura.
¿Es un mal diseño?
Gracias
Carlos
2010/10/27 Horacio Miranda :
>
> Ahora de meter el valor adentro del campo o no, solo ayudaria para
> campos como IVA. (en el caso que cambie el IVA y no tener que escribir
> funciones en base a tiempo para determinar Iva antes de tal fecha e
> IVA despues de tal fecha, podría ayudar meter ese valo
Excerpts from Horacio Miranda's message of mié oct 27 19:38:35 -0300 2010:
> Por lo menos te puedo dar el feed back de Oracle, solo afecta y
> notablemente el rendimiento sí el criterio de busqueda esta incluida
> la función, y para solucionarlo se crea un indice por función,
> postgresql me parece
Por lo menos te puedo dar el feed back de Oracle, solo afecta y
notablemente el rendimiento sí el criterio de busqueda esta incluida
la función, y para solucionarlo se crea un indice por función,
postgresql me parece que lo soporta.
Ahora de meter el valor adentro del campo o no, solo ayudaria par
2010/10/27 Virginia :
> Creo que el campo si debe ser incluído en la tabla pues al momento de
> manipular búsquedas o cualquier cosa por el campo total es más rápido que
> tener q realizar las ponderaciones y sumas al momento de buscar.
>
tienes evidencia de que hay en realidad una mejora substanc
Excerpts from Virginia's message of mié oct 27 10:04:57 -0300 2010:
> Creo que el campo si debe ser incluído en la tabla pues al momento de
> manipular búsquedas o cualquier cosa por el campo total es más rápido que
> tener q realizar las ponderaciones y sumas al momento de buscar.
¿Consideraste
Hola Jhonatan, si los valores de ponderación para la suma ponderada,
responden a una fórmula estática, es decir no se modifican nunca, entonces
no es necesario que almacenes zonificación.
Despues podrás crear una vista mas o menos así:
select campo1, campo2, campo3, campo1*peso1 + campo2*peso2 + ca
Excerpts from JHONATAN CANO FURAGARO's message of mié oct 27 09:58:51 -0300
2010:
> Buen día Guillermo,
>
> Gracias por tu pronta respuesta, tendre en cuenta las vistas y funciones.
>
> Pero por ejemplo, tengo una capa en PostgreSQL/PostGIS, donde tengo campo1,
> campo2, campo3 y zonificacion, d
Hola Jhonatan, creo que tu caso es igual q el mio.
En mi caso, les digo a los de la lista que no creo q se trate de un mal
diseño, pues para acortar la explicación los campos que se deben sumar no
son con valores directos, es decir, si en la tabla promedios (de mi ejemplo)
el campo1 tiene un valor
Buen día Guillermo,
Gracias por tu pronta respuesta, tendre en cuenta las vistas y funciones.
Pero por ejemplo, tengo una capa en PostgreSQL/PostGIS, donde tengo campo1,
campo2, campo3 y zonificacion, donde los campo (1,2,3 son compontes que
almacenan calificaciones ambientales , físico, biótico,
Hola Jhonatan, es simple, el campo que quiere agregar Virginia se puede
calcular en base a otros campos almacenados, entonces no tiene sentido
guardarlo.
Mas aún cuando el cálculo es tan simple que ni siquiera tiene que buscar en
otras filas u otras tablas, con un select lo puede obtener.
Si lo nec
2010/10/26 Alvaro Herrera
> Excerpts from Virginia's message of mar oct 26 12:23:47 -0300 2010:
>
> > Ya resolví mi problema, aquí les dejo la solución para quienes puedan
> tener
> > el mismo problema:
>
> Creo que quienes tengan el mismo problema deberían usar una vista para
> evitar almacenar
Excerpts from Virginia's message of mar oct 26 12:23:47 -0300 2010:
> Ya resolví mi problema, aquí les dejo la solución para quienes puedan tener
> el mismo problema:
Creo que quienes tengan el mismo problema deberían usar una vista para
evitar almacenar el campo calculado, lo cual es mal diseño,
2010/10/26 Jaime Casanova
> 2010/10/26 Virginia :
> >
> > Les comento, el código del trigger es el siguiente:
> >
>
> y deberia quedar asi:
>
> CREATE OR REPLACE FUNCTION calcular_total() RETURNS trigger AS '
> BEGIN
>IF (tg_op = ''INSERT'') OR (tg_op = ''UPDATE'') THEN
> NEW.total= NE
2010/10/26 Virginia :
>
> Les comento, el código del trigger es el siguiente:
>
y deberia quedar asi:
CREATE OR REPLACE FUNCTION calcular_total() RETURNS trigger AS '
BEGIN
IF (tg_op = ''INSERT'') OR (tg_op = ''UPDATE'') THEN
NEW.total= NEW.campo1 + NEW.campo2 + NEW.campo3 ;
END IF;
Para hacer eso el trigger se debe ejecutar antes.(BEFORE)
CREATE TRIGGER calcular_total BEFORE INSERT OR UPDATE ON promedios
EXECUTE PROCEDURE calcular_total();
El 26-10-2010, a las 9:54, Virginia escribió:
El 26 de octubre de 2010 08:22, Virginia escribió:
El 25 de octubre de 2010 23:0
Virginia, insisto en que no deberías tener ese campo en la tabla.
Hacé una función o una vista
Saludos
Guillermo Villanueva
El 26 de octubre de 2010 10:02, Virginia escribió:
>
>
> El 26 de octubre de 2010 08:30, Manuel Diego escribió:
>
>> Para hacer eso el trigger se debe e
Lo que debes hacer es eliminar el lanzamiento del trigger AFTER, eso
es lo primero, ya que "DESPUES" no existe el NEW.
Después que hayas hecho lo anterior, crea la instrucción:
CREATE TRIGGER calcular_total BEFORE INSERT OR UPDATE ON promedios
EXECUTE PROCEDURE calcular_total();
El 26-10-20
El 26 de octubre de 2010 08:30, Manuel Diego escribió:
> Para hacer eso el trigger se debe ejecutar antes.(BEFORE)
>
> CREATE TRIGGER calcular_total *BEFORE* INSERT OR UPDATE ON promedios
> EXECUTE PROCEDURE calcular_total();
>
> El 26-10-2010, a las 9:54, Virginia escribió:
>
>
>
> El 26 de oc
El 26 de octubre de 2010 08:22, Virginia escribió:
>
>
> El 25 de octubre de 2010 23:09, Jaime Casanova
> escribió:
>
> 2010/10/25 Virginia :
>> > Buenas noches, cómo están? quisiera saber si pueden ayudarme con una
>> duda.
>> > Tengo una tabla con los campos id, campo1, campo2, campo3, total y
El 25 de octubre de 2010 23:09, Jaime Casanova escribió:
> 2010/10/25 Virginia :
> > Buenas noches, cómo están? quisiera saber si pueden ayudarme con una
> duda.
> > Tengo una tabla con los campos id, campo1, campo2, campo3, total y un
> > trigger q lo que debería hacer es que cada vez q inserto u
2010/10/25 Virginia :
> Buenas noches, cómo están? quisiera saber si pueden ayudarme con una duda.
> Tengo una tabla con los campos id, campo1, campo2, campo3, total y un
> trigger q lo que debería hacer es que cada vez q inserto un registro en esa
> tabla me sume el campo1 + campo2 + campo3 y actu
Nos das el código de tu trigger?
En todo caso, asi a primeras eso lo deberia resolver una vista.
El 25-10-2010, a las 23:46, Virginia escribió:
Buenas noches, cómo están? quisiera saber si pueden ayudarme con una
duda.
Tengo una tabla con los campos id, campo1, campo2, campo3, total y
un tr
Hola Virginia, desde mi punto de vista, nunca pondría un campo que se pueda
calcular y menos aun, que se pueda calcular con datos de la misma fila.
Saludos
Guillermo Villanueva
El 25 de octubre de 2010 23:46, Virginia escribió:
> Buenas noches, cómo están? quisiera saber si pu
> -Mensaje original-
> De: Grover Navia
>
> Gracias Jaime
>
> Ese detalle no me sabia, entonces como deberia sacar el valor
> del campo de una tabla que este en la cuarta o quinta
> posición. Como deberia ser en mi caso por ejemplo cuando el
> campo "fecha" es el 4º campo ?.
>
Si
escribió:
De: Jaime Casanova
Asunto: Re: [pgsql-es-ayuda] Problema con TRIGGER
Para: "Grover Navia"
CC: pgsql-es-ayuda@postgresql.org
Fecha: viernes, 15 de enero, 2010 18:24
2010/1/15 Jaime Casanova :
> 2010/1/15 Grover Navia
>>
>> Gracias Juan por responder
>> Per
2010/1/15 Jaime Casanova :
> 2010/1/15 Grover Navia
>>
>> Gracias Juan por responder
>> Pero lo solucione temporalmente colocando la siguiente instrucción:
>>
>> SELECT INTO factura_tabla *
>>
>> Es decir cargando todo los campos, aunque no es la forma apropiada puesto
>> que solo
>> necesito 2 c
2010/1/15 Grover Navia
>
> Gracias Juan por responder
> Pero lo solucione temporalmente colocando la siguiente instrucción:
>
> SELECT INTO factura_tabla *
>
> Es decir cargando todo los campos, aunque no es la forma apropiada puesto que
> solo
> necesito 2 campos. Estaré haciendo la prueba con t
Navia
--- El vie, 15/1/10, juan escribió:
De: juan
Asunto: Re: [pgsql-es-ayuda] Problema con TRIGGER
Para: "Grover Navia"
CC: pgsql-es-ayuda@postgresql.org
Fecha: viernes, 15 de enero, 2010 15:15
Grover Navia escribió:
> CREATE FUNCTION almacenes.registrar_venta_kardex() RETU
Grover Navia escribió:
CREATE FUNCTION almacenes.registrar_venta_kardex() RETURNS OPAQUE AS'
DECLARE
factura_tabla public.facturacion%ROWTYPE;
BEGIN
SELECT INTO factura_tabla nro_operacion, fecha
FROM public.facturacion
WHERE nro_operacion = New.nro_operacion;
IF FOUND THEN
Hola, bueno lo he probado con el BEFORE DELETE y funciona de maravilla,
muchas gracias
2008/11/10 Emanuel CALVO FRANCO <[EMAIL PROTECTED]>
> new no funciona solamente con BEFORE ?
>
> 2008/11/10 Erik Ferney Cubillos Garcia <[EMAIL PROTECTED]>:
> > Buenos Días, Tardes, noches
> >
> > bueno verán
hola Emanuel, verás, no lo he probado, es el unico cambio que no he hecho,
voy a hacerlo y les comento como me fue
Gracias
2008/11/10 Emanuel CALVO FRANCO <[EMAIL PROTECTED]>
> new no funciona solamente con BEFORE ?
>
> 2008/11/10 Erik Ferney Cubillos Garcia <[EMAIL PROTECTED]>:
> > Buenos Días,
Hola... gracias por tu respuesta, pero la verdad es que no estoy usando el
new, es por eso que se me hace muy raro, bueno la verdad es que ya lo he
revisado, pero no sé si se me está escapando algo, saludos y gracias
2008/11/10 Alejandro D. Burne <[EMAIL PROTECTED]>
> 2008/11/10 Erik Ferney Cubil
new no funciona solamente con BEFORE ?
2008/11/10 Erik Ferney Cubillos Garcia <[EMAIL PROTECTED]>:
> Buenos Días, Tardes, noches
>
> bueno verán tengo el siguiente Trigger con su respectiva función que se
> ejecuta luego de hacer un DELETE, pero tengo un problema cada vez que
> elimino un registro
2008/11/10 Erik Ferney Cubillos Garcia <[EMAIL PROTECTED]>:
> Buenos Días, Tardes, noches
>
> bueno verán tengo el siguiente Trigger con su respectiva función que se
> ejecuta luego de hacer un DELETE, pero tengo un problema cada vez que
> elimino un registro me sale el siguiente error
>
>
> ERROR:
OTECTED]>
> Asunto: Re: [pgsql-es-ayuda] problema con trigger
> Para: "marcelo Cortez" <[EMAIL PROTECTED]>
> Cc: pgsql-es-ayuda@postgresql.org
> Fecha: lunes, 3 de noviembre de 2008, 3:09 pm
> marcelo Cortez escribió:
>
> > CREATE OR REPLACE FUNCT
marcelo Cortez escribió:
> CREATE OR REPLACE FUNCTION tr_status()
> RETURNS trigger AS
> $BODY$
> BEGIN
> -- Check that empname and salary are given
> IF NEW.status_f IS NULL THEN
> NEW.status_f := ' ';
> END IF;
>
> RETURN NEW;
> END;
> $BODY$
> LANGUA
marcelo Cortez escribió:
> huuu tenes razon yo lo hize con el pgadmin y estaba seguro de haberle
> puesto before, como lo modifico por linea de comando psql?
Borralo y crealo de nuevo.
--
Alvaro Herrera Developer, http://www.PostgreSQL.org/
"Linux transformó mi computado
L PROTECTED]> escribió:
>
>> De: Jenaro Centeno Gómez <[EMAIL PROTECTED]>
>> Asunto: Re: [pgsql-es-ayuda] problema con trigger
>> Para: "Fernando Moreno" <[EMAIL PROTECTED]>
>> Cc: [EMAIL PROTECTED], pgsql-es-ayuda@postgresql.org
>> Fecha: lunes, 3
Gómez <[EMAIL PROTECTED]>
> Asunto: Re: [pgsql-es-ayuda] problema con trigger
> Para: "Fernando Moreno" <[EMAIL PROTECTED]>
> Cc: [EMAIL PROTECTED], pgsql-es-ayuda@postgresql.org
> Fecha: lunes, 3 de noviembre de 2008, 12:27 pm
> Utiliza restricciones en la definic
t;
> Asunto: Re: [pgsql-es-ayuda] problema con trigger
> Para: [EMAIL PROTECTED]
> Cc: pgsql-es-ayuda@postgresql.org
> Fecha: lunes, 3 de noviembre de 2008, 12:09 pm
> >
> > pero el siguiente query me encuentra registros con
> null.
> >
> > select * from marca wh
Utiliza restricciones en la definición del campo y la tabla, si ahora
tienes información con campos null entonces no te va a dejar hacer el
cambio primero deshazte de los nulls y luego modificas la definición de
tu tabla. Y te olvidas del problema de los nulls.
Saludos.
El lun, 03-11-2008 a las 0
>
> pero el siguiente query me encuentra registros con null.
>
> select * from marca where status_f is null ;
> Como es posible si despues de insert o update el trigger corrige este
> campo??
>
Porque los triggers AFTER no modifican el registro. Tú necesitas aplicarlo
antes de la operación de in
te conviene utilizar valores por default y restricciones check en el
ddl del campo de la tabla.
En el caso de querer convertir los NULL a ' ', te conviene en vez de
utilizar un trigger, utilizar un RULE.
CREATE RULEx AS
ON INSERT TO tabla WHERE
( fulano is NULL )
DO INSTEAD
INSERT IN
52 matches
Mail list logo