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

Triggers

Estas en el tema de Triggers en el foro de PostgreSQL en Foros del Web. Hola amigos del foro!!!!!! Necesito su ayuda para hacer un triger que levante ordenes de trabajo cada que un vehiculo llegue a cierto kilometraje por ...
  #1 (permalink)  
Antiguo 31/05/2008, 10:08
 
Fecha de Ingreso: abril-2008
Mensajes: 82
Antigüedad: 16 años
Puntos: 0
Pregunta Triggers

Hola amigos del foro!!!!!!
Necesito su ayuda para hacer un triger que levante ordenes de trabajo cada que un vehiculo llegue a cierto kilometraje por ejemplo cada que los vehiculos nissan lleguen a 5000 km que el trigger se dispare y cree automaticamente la orden de trabajo para ese vehiculo y a los otros 5000 km vuelva a levantarle una orden esto es cada 5000 kms se debe levantar la orden pero tiene que validar cada que se registre una carga del vehiculo es decir si mi vehiculo 22 hizo una primera carga y su kilometraje fue de 3500 , ovbiamente no levantaria la orden, pero si ala segunda carga su kilometraje fue de 5500 levantaria la orden de los 5000, y si hace una tercera carga con un kilometraje de 7000 no deberia hacer ninguna orden por que tendria que buscar si ese vehiculo ya levanto la orden de los primeros 5000 kms y si ya la hizo entonces ya no la levanta,pero si no la ha hecho entonces la levanta,pero si hace una cuarta carga con un kilometraje de 10010 km entoonces tendria que volverle a levantar la orden por los 10000.
Cualquier ayuda es bienvenida gracias.
saludos.

Última edición por mayte85; 31/05/2008 a las 10:18
  #2 (permalink)  
Antiguo 02/06/2008, 03:00
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 2 meses
Puntos: 13
Respuesta: Triggers

Es el tercer mensaje que veo de lo mismo mayte, por favor, no repitais hilos.

Te mande links a la documentacion con ejemplos, revisalos y cuando tengas el trigger si no funciona o no sabes como hacer algo, te ayudo pero no voy a hacerte el trigger (que por cierto es muy facil).

A la espera
  #3 (permalink)  
Antiguo 02/06/2008, 08:24
 
Fecha de Ingreso: abril-2008
Mensajes: 82
Antigüedad: 16 años
Puntos: 0
Respuesta: Triggers

Ok perdon pero la desesperacion nos hace coemter errores, y pues te repito no habia tenido la necesidad de hacer un trigger es la primera vez pero gracias por los ejemplos.
no pido que me lo hagan solo que me asesoren en cuanto a que tengo que hacer, si un select y despues un insert o cosas asi.
Mas bien no se como estructurarlo para que haga lo que quiero.
saludos seyko y muchas gracias.
  #4 (permalink)  
Antiguo 02/06/2008, 08:35
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 2 meses
Puntos: 13
Respuesta: Triggers

La idea es crear un trigger AFTER INSERT OR UPDATE.

Calculas los Km totales que lleva vehiculo que acaba de insertar/modificar.
Compruebas si el nº de Km está correcto con el nº de ordenes.
Si es correcto --> FIN
Si no es correcto --> Levantas la orden

salu2
  #5 (permalink)  
Antiguo 04/06/2008, 10:16
 
Fecha de Ingreso: abril-2008
Mensajes: 82
Antigüedad: 16 años
Puntos: 0
Respuesta: Triggers

Hola buen dia me surgio una duda es posible en un trigger asignarle a una variable el valor que recoge un select, algo asi como esto:

DECLARE
var1=SELECT csmpo1 FROM tabla;
y despues hacer una validacion con la variable?.
  #6 (permalink)  
Antiguo 04/06/2008, 10:58
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 2 meses
Puntos: 13
Respuesta: Triggers

por supuesto, dale una leida a PL/pgsql para ver todo lo que puedes hacer.

Lo que quieres se hace con SELECT INTO
Código:
DECLARE
 var integer;
BEGIN
 select campo_integer into var from tabla;
...
 IF (var = 2) ....
Salu2
  #7 (permalink)  
Antiguo 04/06/2008, 11:45
 
Fecha de Ingreso: abril-2008
Mensajes: 82
Antigüedad: 16 años
Puntos: 0
Respuesta: Triggers

Nuevamente muchas gracias seyko
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 13:58.