SQL - problemas con el disparador trigger

 
Vista:

problemas con el disparador trigger

Publicado por pas (3 intervenciones) el 15/05/2007 18:00:01
Hola estoy haciendo esto en mi base de datos y no consigo ni que compile, estoy empezando a usar triggers y no lo llego a entender muy bien, alguien me puede decir donde puede fallar?:

CREATE TRIGGER insertar_parto
AFTER INSERT ON Monta
FOR EACH ROW
BEGIN
DECLARE Fechaprevista DATE;
DECLARE Fechaminima DATE;
DECLARE Fechamaxima DATE;
DECLARE Fecha DATE;


SELECT n_crotal_vaca, fecha INTO Fecha FROM Monta;

Fecha_prevista = Fecha + INTERVAL 280 DAY;
Fecha_minima = Fecha + INTERVAL 276 DAY;
Fecha_maxima = Fecha + INTERVAL 290 DAY;

INSERT INTO Parto VALUES
(n_crotal, Fecha_prevista,
Fecha_minima, Fecha_maxima);

END insertar_parto;

lo que quiero hacer es crear un mecanismo automatico q al introducir una monta rellene la tabla parto.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:problemas con el disparador trigger

Publicado por Isaías (5072 intervenciones) el 15/05/2007 20:29:23
¿Que base de datos estas usando, SQL SERVER?, ¿Que version?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problemas con el disparador trigger

Publicado por dani (3 intervenciones) el 15/05/2007 20:33:34
estoy usando mysql server 5.0, me lo bajé de aquí:

http://mysql.org/get/Downloads/MySQL-5.0/mysql-essential-5.0.37-win32.msi/from/http://mysql.rediris.es/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problemas con el disparador trigger

Publicado por Isaías (5072 intervenciones) el 15/05/2007 20:36:15
Ok

Desconozco MYSQL, pero en teoria, si es un "fusil" de SQL Server, las datos ingresados deberian estar en una tabla de paso llamada INSERTED, eso solo es mera suposicion.

¿Porque utilizas MySQL, por ser libre de cargo?

Ya existe una version libre de cargo de SQL SERVER 2005, se llama SQL SERVER 2005 EXPRESS EDITION WITH ADVANCED SERVICES.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problemas con el disparador trigger

Publicado por dani (3 intervenciones) el 15/05/2007 20:39:51
Sí uso mysql por ser libre y porqué es la única que me han llegado a enseñar jaja.

Umm los datos que quiero meter es de la tabla "monta" a la tabla "parto", en este código no sé muy bien que es lo que puede fallar porque le he dado mil vueltas al manual de sql y nada de nada.. la sintaxis de sql no es independiente del gestor de base de datos que se use?

CREATE TRIGGER insertar_parto
AFTER INSERT ON Monta
FOR EACH ROW
BEGIN
DECLARE
Fecha_prevista DATE;
Fecha_minima DATE;
Fecha_maxima DATE;
Fecha DATE;

SELECT n_crotal_vaca, fecha INTO Fecha FROM Monta;

Fecha_prevista = Fecha + INTERVAL 280 DAY;
Fecha_minima = Fecha + INTERVAL 276 DAY;
Fecha_maxima = Fecha + INTERVAL 290 DAY;

INSERT INTO Parto VALUES
(n_crotal_vaca, Fecha_prevista,
Fecha_minima, Fecha_maxima);

END insertar_parto;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problemas con el disparador trigger

Publicado por Isaías (5072 intervenciones) el 15/05/2007 21:35:13
Mira, he leido este articulo y debes hacer referencia a los datos que quieres introducir en PARTO con anteponiendo OLD.

lee:

http://www.webtaller.com/construccion/lenguajes/mysql/lecciones/que-son-los-triggers-como-usarlos-mysql-5.0.php
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar