Ver Mensaje Individual
  #15 (permalink)  
Antiguo 29/05/2009, 16:07
r0xdrig0
 
Fecha de Ingreso: diciembre-2007
Mensajes: 385
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: como hacer este trigger????

Hola huesos, el error me lo da en la linea 8 q es esta:
Código:
DELETE FROM visitante WHERE old.rut_visitante=rut_visitante;
es q lo cambie por new la parte del WHERE old.rut_visitante= old.rut_visitante la cambie por WHERE old.rut_visitante= .rut_visitante, hice a este cambio debido a q con old igaul me lanza el mismo error en la misma linea por eso probe con ambos pero pero con ambos me manda el mismo error

en q estoy fallando??

porfavor ya no se en q estoy fallando y como les digo probe con ambos con new y old pero con ambos me manda el mismo error, obviamente q recalcandome el NEW o el OLD segun lo haya probado el error es este:
Código:
CREATE OR REPLACE FUNCTION eliminar_visitante() returns TRIGGER AS
  
      $$
  
      declare
   
      nino record;
  
      Begin
  
      SELECT INTO nino count(rut_visitante) AS numvisitas FROM visita WHERE rut_visitante=new.rut_visitante;
   
      IF nino.numvisitas = 0 then  

	delete from visita where old.id_nino=id_nino;
  
        DELETE FROM visitante WHERE old.rut_visitante=rut_visitante;// esta es la linea donde me manda el error
  
      end IF;
 
      RETURN old;
  
      End;
 
      $$
 
      LANGUAGE 'plpgsql';
 
       
  
      CREATE TRIGGER borrar_visitante before
  
      DELETE ON nino
 
      FOR each row execute procedure eliminar_visitante();
aqui le escribo denuevo el error:

ERROR: record "NEW/OLD" is not assigned yet
DETAIL: The tuple structure of a not yet assigned record is indeterminate
CONTEXT: PL/pgSQL function "eliminar_visitante" line 8 at SQL statement

ese es el error q me tira, el error del record lo puse con NEW/OLD pq aun q pruebe con cada uno de ellos me manda el mismo error.... porfavor amigos en q estoy fallando??? ruego su ayuda!!!!! de antemano gracias.... bye...