Ver Mensaje Individual
  #5  
Antiguo 27-12-2007
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Reputación: 27
jachguate Va por buen camino
Que pasa si alguien hace algo como:

Código SQL [-]
update lista_precios
  set precio = precio * 1.05;

Me parece poco adecuado evitar esto en la base de datos... pero si querés hacerlo, con algo de ingenio, seguramente se puede.

Por ejemplo, creando una tabla auxiliar del tipo:

Código SQL [-]
create table auxiliar_no_actualizaciones (
  usuario varchar(50) not null,
  tabla varchar(50) not null,
  fecha timestamp not null
);

En un trigger before update, verificas que no haya un registro para el usuario/tabla en el último segundo. Si lo hay, elevas una excepción. Si no lo había, lo insertas.

Para evitar que se acumulen los registros en dicha tabla, podrías eliminar todos los registros con mas de 2 o 3 segundos de antiguedad en el mismo trigger before.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita