MySQL - Duda con Trigger, Sleep y

 
Vista:

Duda con Trigger, Sleep y

Publicado por Comanderblack (1 intervención) el 19/11/2013 21:16:41
Hola. Ante todo quiero decir, que aunque me han enseñado bastante de bases de datos, no me han llegado a enseñar nada (o casi nada) de triggers.

Lo que quiero hacer es que una entrada que se produce en la siguiente tabla:
1
2
3
4
5
6
7
8
9
10
11
12
CREATE TABLE asientos (
	sesion	INTEGER NOT NULL,
	zona	INTEGER NOT NULL,
	fila	INTEGER NOT NULL,
	columna	INTEGER NOT NULL,
	estado	ENUM('reservado', 'comprado') NOT NULL,
	hora	DATETIME NOT NULL,
 
	PRIMARY KEY (sesion, fila, columna),
	FOREIGN KEY (sesion) REFERENCES sesion (ID) ON DELETE CASCADE,
	FOREIGN KEY (zona) REFERENCES salaSpec (zona) ON DELETE CASCADE
);
tenga un sistema de eliminación de entradas reservadas si pasado un tiempo no han sido compradas.
(Es decir, que la entrada introducida, si no ha sido actualizada a 'comprada', sea borrada)

Creo que lo ideal sería un trigger "retardado", que creo que quedaría algo tal que así:

1
2
3
4
5
6
7
8
CREATE TRIGGER borrarasientos AFTER INSERT ON asientos
FOR a=EACH ROW
BEGIN
	SLEEP(300)
	IF (a.estado='reservado') THEN
		DELETE a;
	END IF
END
Se que este código está mal, pero es una forma de exponer lo que intento hacer.
Cualquier idea para solucionar esto, o alguna alternativa eficaz, es bienvenida.
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
Imágen de perfil de Willian
Val: 2
Ha aumentado su posición en 60 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

Duda con Trigger, Sleep y

Publicado por Willian (52 intervenciones) el 20/11/2013 20:44:12
Hola. en primer lugar el trigger no tiene esa funcionalidad.
por otro lado a ver si entendi,, queres que cada X minutos o horas o dias o lo que sea, en una determinada tabla se borren registro si es que no cumplen algunos criterio??? si es eso tu respuesta no es un trigger si no mas bien un EVENT (EVENTO) lo cual lo puede programar para que se ejecute cada sierto tiempo y haga lo que le indicas..
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