TRIGGERS ayuda

Iniciado por .rn3w., 19 Mayo 2012, 03:37 AM

0 Miembros y 1 Visitante están viendo este tema.

.rn3w.

create table DETALLE_VENTA (
  ID_VENTA             NUMERIC              not null,
  ID_PROD              VARCHAR(30)          null,
  CANTIDAD             NUMERIC              null,
  PRECIO_UNIT_PRO      FLOAT8               null,
  MONTO_TOTAL          FLOAT4               null
);



create table VENTA (
  ID_VENTA             NUMERIC              not null,
  ID_CAJERO            NUMERIC              null,
  CI_CLI               NUMERIC              null,
  FECHA                DATE                 not null,
  HORA                 TIME                 not null,
  constraint PK_VENTA primary key (ID_VENTA)
);



create table HISTO_PRODUCTO (
   ID_PROD              VARCHAR(30)          null,
   nombre_pro           VARCHAR(30)          not null,
   FECHA                DATE                 not null,
   NOMBRE_PROC          VARCHAR(50)          not null
);




create table PRODUCTO (
  ID_PROD              VARCHAR(30)          not null,
  PROCEDENCIA          VARCHAR(20)          not null,
  NOMBRE               VARCHAR(20)          not null,
  PESO                 FLOAT8               null,
  GARANTIA             CHAR(2)              null,
  UDS                  INT4                 null,
  SECTOR_PRO           VARCHAR(20)          not null,
  UBICACION            VARCHAR(20)          not null,
  LITROS               INT4                 null,
  PUNTO_REORDEN        INT4                 not null,
  STOCK                INT4                 not null,
  constraint PK_PRODUCTO primary key (ID_PROD)
);




en la tabla detalle_venta se encuentra el atributo cantidad, y el la tabla producto se encuentra el atributo stock, entonces lo que quiero que me ayuden es que como puedo hacer automatico la disminucion del stock para cada producto en cada venta.

ya se que tengo que utilizar triggers, pero en lo que fallo es como hacer la funcion del trigger ya que tengo que modificar para cada producto y para cada determinada venta.

.rn3w.

#1
AYUDA CUALQUIER APORTE ES BIENVENIDO!!! VISITANTES PORFAVOR

HdM

Buenas.

http://dev.mysql.com/doc/refman/5.0/es/triggers.html

Postea cómo estás desarrollando el trigger.

Saludos.

- Nice to see you again -

.rn3w.

#3
bueno ya solucione y funciona bien
muxas gracias...

pero me surgio un nuevo problema espero que me ayuden porfavor

tengo que hacer bitacoras de producto lo realize de esta manera quiero que me digan si las bitacoras se hacen tambien con trigger???
aki esta el code

CREATE OR REPLACE FUNCTION FunBitaProd() RETURNS TRIGGER AS $$
DECLARE
NOM   VARCHAR;
NOM_PROC VARCHAR;
BEGIN

NOM=(SELECT NOMBRE FROM PRODUCTO WHERE ID_PROD=NEW.ID_PROD);
NOM_PROC=(SELECT PROCEDENCIA FROM PRODUCTO WHERE ID_PROD=NEW.ID_PROD);

INSERT INTO histo_producto(id_prod, nombre_pro, fecha, nombre_proc)
   VALUES (NEW.ID_PROD, NOM, current_date, NOM_PROC);

RETURN NEW;
END;
$$ LANGUAGE PLPGSQL;

CREATE TRIGGER BitaProd AFTER INSERT OR UPDATE
ON PRODUCTO FOR EACH ROW
EXECUTE PROCEDURE FunBitaProd();

.rn3w.

ayuda, este code esta bien hecho para una implementacion de una bitacora???

.rn3w.

como obtener que dato fue modificado o los datos que fueron modificados ???

.rn3w.

#6
estuve investigando algo sobre
if update(atributo) then


end if

alguien me ayuda si esta condicion funciona con postgres?

Saberuneko

Cita de: bjpenn en 26 Mayo 2012, 02:15 AM
como obtener que dato fue modificado o los datos que fueron modificados ???

Mírate bien cómo funcionan las variables .new y .old en el update.
Si la .new y la .old son distintas, significa que esa se modificó.

Un Saludo.

.rn3w.

hola como ejecuto los trigger desde java????????

necesito un ejemplo con los comandos que ejecuta los triggers en java