Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Mysql (http://www.forosdelweb.com/f86/)
-   -   En un Trigger Variable NEW sin declarar (http://www.forosdelweb.com/f86/trigger-variable-new-sin-declarar-493324/)

Kelbethor 28/05/2007 08:54

En un Trigger Variable NEW sin declarar
 
A ver si alguien puede ayudarme con mi primer trigger en mysql:
He revisado la sintaxis y por mas vueltas que le doy todo parece correcto pero el servidor me suelta que la "pseudo-variable" NEW no está declarada:

El script es el siguiente

Código:

delimiter |
create trigger TBIVentas BEFORE INSERT on ventas
for each row
begin
  Set New.NumEncargo=0;
  select Max(ifnull(NumEncargo,0))+1 into NEW.NumEncargo from ventas where fechaencargo=NEW.FechaEncargo;
end;
|
delimiter ;

La version de mi server es 5.0.37
La tabla es InnoDB
Privilegios de root en localhost
Y el error es "ERROR 1327 (42000): Undeclared variable: NEW"

AH! Y este codigo si me lo acepta:
Código:

delimiter |
create trigger TBIVentas BEFORE INSERT on ventas
for each row
begin
 declare pepito integer;
  Set pepito=`New`.`NumEncargo`;
end;
|
delimiter ;

Parece que el problema viene por usar la NEW dentro de la select...
A ver si alguien me explica que es lo que está mal...

Al final encontré una alternativa:
Código:

delimiter |
create definer=`root`@`localhost` trigger `TBIVentas` BEFORE INSERT on `ventas`
for each row
begin
  declare pepito integer;
  Set pepito=0;
  select Max(ifnull(`NumEncargo`,0))+1 into pepito from `ventas` where `ventas`.`fechaencargo`=`NEW`.`FechaEncargo`;
  set NEW.NumEncargo=pepito;
end;
|
delimiter ;



La zona horaria es GMT -6. Ahora son las 04:00.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.