Retroceder   Foros del Web > Programación para sitios web > Bases de Datos > Mysql

Respuesta
 
Herramientas Desplegado
Antiguo 28-may-2007, 08:54   #1 (permalink)
Kelbethor ha deshabilitado el karma
 
Fecha de Ingreso: agosto-2004
Mensajes: 56
Triste 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 ;

Última edición por Kelbethor; 28-may-2007 a las 09:13. Razón: Me las apañe, pero no lo entiendo
Kelbethor está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 14:39.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93