Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Problemas con un IF en mysql

Estas en el tema de Problemas con un IF en mysql en el foro de Mysql en Foros del Web. hola tengo un problema al tratar de ejecutar un trigger en mysql ya que le meto una sentencia IF pero me da siempre error, aca ...
  #1 (permalink)  
Antiguo 03/09/2008, 10:57
 
Fecha de Ingreso: julio-2006
Ubicación: 127.0.0.1
Mensajes: 14
Antigüedad: 17 años, 9 meses
Puntos: 0
Problemas con un IF en mysql

hola tengo un problema al tratar de ejecutar un trigger en mysql ya que le meto una sentencia IF pero me da siempre error, aca les paso el codigo,
Explicación del trigger: utilizo este trigger para hacer una auditoria sobre movimientos, como la baja solamente es logica si el estado es mayor que 0 enotonces en movimiento pongo baja, de lo contrario es una modificación, en fin aca les paso el trigger y el error que me da,
gracias por su tiempo
ah, y antes que nada no puse una variable porque tambien me daba error es por eso que tuve que escribir dos sentencias insert

Código PHP:
create trigger eliminar_modificar_chofer after update on choferes
for each row
begin

if new.Estado 0 then 
insert into choferes_auditoria 
(IdChoferIdClienteApellidoNombreTelefonoIdUsuarioFechaMovimientovalues (new.IdChofer, new.IdCliente, new.Apellido, new.Nombre, new.Telefono, new.IdUsuarionow(), 'Baja'); 
else 
insert into choferes_auditoria (IdChoferIdClienteApellidoNombreTelefonoIdUsuarioFechaMovimientovalues
(new.IdChofer, new.IdCliente, new.Apellido, new.Nombre, new.Telefono, new.IdUsuarionow(), 'Modificacion'); 
end if;

end
el error que me da es el siguiente:
MySQL ha dicho:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 6
  #2 (permalink)  
Antiguo 21/03/2009, 09:06
 
Fecha de Ingreso: julio-2006
Ubicación: 127.0.0.1
Mensajes: 14
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: Problemas con un IF en mysql

encontre la solucion, esta sentencia me funciona OK!!

lo dejo por si alquien tuvo el mismo problema que yo

este trigger ademas agrega un * al principio del campo editado para tener un control de la información que edito un determinado usuario

Código PHP:
create trigger eliminar_modificar_chofer after update on choferes 
for each row 

begin

declare mov text;
declare 
ape text;
declare 
nom text;
declare 
tel text;
declare 
cli text;

set ape= new.Apellido;
set cli= new.IdCliente;
set nom= new.Nombre;
set tel= new.Telefono;

if new.
Estado 0 then 
set mov
'Baja'
else 

set mov='Modificacion'
if 
strcmp(new.Apellidoold.Apellido) <> 0 then set ape concat('*', new.Apellido); end if;
if 
strcmp(new.Nombreold.Nombre) <> 0 then set nom concat('*', new.Nombre); end if;
if 
strcmp(new.Telefonoold.Telefono) <> 0 then set tel concat('*', new.Telefono); end if;
if 
strcmp(new.IdClienteold.IdCliente) <> 0 then set cli concat('*', new.IdCliente); end if;

end if;

insert into choferes_auditoria (IdChoferIdClienteApellidoNombreTelefonoIdUserFechaMovimientovalues(new.IdChofercli,apenomtel, new.IdUsernow(), mov);

end 
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:53.