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

error en trigger

Estas en el tema de error en trigger en el foro de PostgreSQL en Foros del Web. buen dia, ante todo gracias a aquella persona que me pueda ayudar tengo este codig en POSTGRES Código: CREATE OR REPLACE FUNCTION fill_data() RETURNS TRIGGER ...
  #1 (permalink)  
Antiguo 09/11/2011, 08:27
Avatar de yamiblancoc  
Fecha de Ingreso: agosto-2011
Mensajes: 103
Antigüedad: 12 años, 8 meses
Puntos: 4
Sonrisa error en trigger

buen dia,

ante todo gracias a aquella persona que me pueda ayudar tengo este codig en POSTGRES
Código:
CREATE OR REPLACE FUNCTION fill_data() RETURNS TRIGGER AS $fill_data$
  DECLARE
    BEGIN
              
        IF  (TG_OP = 'UPDATE') THEN
            UPDATE request SET req_description = NEW.req_description WHERE req_id = OLD.req_id;
            IF NOT FOUND THEN RETURN NULL; 
            END IF;

            NEW.last_updated = now();
            INSERT INTO historic VALUES(NEW.req_description, NEW.stat_id);
            RETURN NEW;
            
        ELSIF (TG_OP = 'INSERT') THEN
            INSERT INTO request VALUES(NEW.req_subject, NEW.req_description, NEW.dateapplication, NEW.stat_id, NEW.pers_id);

            NEW.last_updated = now();
            INSERT INTO historic VALUES(NEW.req_description, NEW.stat_id);
            RETURN NEW;
        END IF;
    END;
$fill_data$ LANGUAGE plpgsql;

    CREATE TRIGGER fill_data BEFORE INSERT OR UPDATE 
    ON request FOR EACH ROW 
    EXECUTE PROCEDURE fill_data();

    CREATE TRIGGER fill_data BEFORE INSERT OR UPDATE 
    ON historic FOR EACH ROW 
    EXECUTE PROCEDURE fill_data();

PERO CUANDO HAGO ESO

Código:
insert into request (req_id, req_subject, req_description,req_dateapplication, stat_id)
values ( 123, 'yamileth','prueba de trigger', '2011/11/11',2)
Y CUANDO LO EJECUTO ME DICE ESTO


ERROR: el registro «new» no tiene un campo «dateapplication»
CONTEXT: SQL statement "INSERT INTO request VALUES(NEW.req_id, NEW.req_subject, NEW.req_description, NEW.dateapplication, NEW.stat_id, NEW.pers_id)"
función PL/pgSQL «fill_data» en la línea 14 en sentencia SQL

********** Error **********

ERROR: el registro «new» no tiene un campo «dateapplication»
SQL state: 42703
Context: SQL statement "INSERT INTO request VALUES(NEW.req_id, NEW.req_subject, NEW.req_description, NEW.dateapplication, NEW.stat_id, NEW.pers_id)"
función PL/pgSQL «fill_data» en la línea 14 en sentencia SQL



ALGUIEN ME PODRA AYUDAR....
  #2 (permalink)  
Antiguo 10/11/2011, 17:04
 
Fecha de Ingreso: septiembre-2011
Ubicación: Bogota
Mensajes: 31
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: error en trigger

Código SQL:
Ver original
  1. INSERT INTO historic VALUES(NEW.req_description, NEW.stat_id);

No estoy seguro de que sea la solución pero creo que deberías, ponerle los campos al insert para que te funsiones ose algo así:

Código SQL:
Ver original
  1. INSERT INTO historic (campo1, campo2)VALUES(NEW.req_description, NEW.stat_id);

Etiquetas: end, insert, postgres, sql, trigger, campos
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 22:46.