Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/01/2009, 15:05
demolition_man
 
Fecha de Ingreso: enero-2009
Mensajes: 1
Antigüedad: 15 años, 3 meses
Puntos: 0
Triggers y problemas varios

Hola, estoy haciendo una base de datos pero quiero hacer una cosa un poco complicada

Veamos, tengo estas tablas:

PELICULA:

codigo (INT, clave primaria)
stock (int)

y luego una linia de factura con

id: (INT, clave primaria)
peli (INT, ID de la pelicula)

---------------------------------

Ahora viene lo bueno, quiero que de alguna manera me guarde en una variable el resultado de un SELECT

CREATE PROCEDURE prod (IN id INT, OUT salida INT)
BEGIN
SELECT stock INTO salida
FROM pelicula p
WHERE id = p.codigo;
END;

y luego hago esto

CREATE TRIGGER stock0 AFTER INSERT ON linia_factura
FOR EACH ROW BEGIN
DECLARE id,stoc INT;
SET id = linia_factura.peli;
CALL prod (id,stoc);
IF stoc<=0 THEN
UPDATE pelicula SET stock=10 WHERE codigo=id;
END IF;
END;

pero me da error, en la linia 5 (WHERE id = p.codigo;), no entiendo como hacer que en añadir una nueva linia de factura, que me mire si el stock es 0 y si fuera asi, me añadiera 10

gracias de antemano