39 lines
		
	
	
		
			921 B
		
	
	
	
		
			MySQL
		
	
	
	
	
	
		
		
			
		
	
	
			39 lines
		
	
	
		
			921 B
		
	
	
	
		
			MySQL
		
	
	
	
	
	
|   | /*
 | ||
|  |  * Trigger declarations for hpr_hpr
 | ||
|  |  *
 | ||
|  |  */
 | ||
|  | 
 | ||
|  | --
 | ||
|  | -- Table 'log' to hold details of certain background activities invoked by
 | ||
|  | -- stored procedures and triggers
 | ||
|  | --
 | ||
|  | DROP TABLE IF EXISTS log;
 | ||
|  | CREATE TABLE log (
 | ||
|  |     id int(5) NOT NULL AUTO_INCREMENT,
 | ||
|  |     stamp timestamp DEFAULT now(),
 | ||
|  |     message text NOT NULL,
 | ||
|  |     PRIMARY KEY (id)
 | ||
|  | );
 | ||
|  | 
 | ||
|  | --
 | ||
|  | -- When an episode is added to the eps table check whether there is an
 | ||
|  | -- entry in the reservations table with the same id. If there is, delete
 | ||
|  | -- it. Log the deletion in the log table.
 | ||
|  | --
 | ||
|  | DROP TRIGGER IF EXISTS check_reservations;
 | ||
|  | DELIMITER $$
 | ||
|  | CREATE TRIGGER check_reservations BEFORE INSERT ON eps
 | ||
|  | FOR EACH ROW
 | ||
|  | BEGIN
 | ||
|  |     IF EXISTS(SELECT id FROM reservations WHERE id = NEW.id) THEN
 | ||
|  | 	DELETE FROM reservations WHERE id = NEW.id;
 | ||
|  | 	INSERT INTO log (message) VALUES(concat('DELETE FROM reservations WHERE id = ',NEW.id));
 | ||
|  |     END IF;
 | ||
|  | END;
 | ||
|  | $$
 | ||
|  | DELIMITER ;
 | ||
|  | 
 | ||
|  | /*
 | ||
|  | vim: syntax=sql ai tw=75:
 | ||
|  | */
 |