use test;

CREATE TABLE test.tab_a (id MEDIUMINT NOT NULL AUTO_INCREMENT,
                           dt TIMESTAMP, user CHAR(255), uuidf LONGBLOB,
                           fkid MEDIUMINT, filler VARCHAR(255),
                           PRIMARY KEY(id)) ENGINE=innodb;

CREATE TABLE test.tab_b (trid MEDIUMINT AUTO_INCREMENT,
                                   d DATETIME, u CHAR(20), 
                                   PRIMARY KEY(trid)) ENGINE=innodb;


delimiter //

CREATE PROCEDURE test.insdel()
BEGIN
   DECLARE ins_count INT DEFAULT 10; 
   DECLARE del_count INT;
   DECLARE cur_user VARCHAR(255);
   DECLARE local_uuid VARCHAR(255);
   DECLARE local_time TIMESTAMP;

   SET local_time= NOW();
   SET cur_user = CURRENT_USER();
   SET local_uuid=UUID();

   WHILE ins_count > 5 DO
       INSERT INTO test.tab_a VALUES (NULL, local_time, cur_user, local_uuid,
                                    ins_count,'Going to test SBR for MySQL');
       SET ins_count = ins_count - 1;
   END WHILE;

   DELETE FROM test.tab_a WHERE id = 1;

   WHILE ins_count > 0 DO
       INSERT INTO test.tab_a VALUES (NULL, local_time, cur_user, local_uuid,
                                    ins_count,'Going to test SBR for MySQL');
       SET ins_count = ins_count - 1;
   END WHILE;

   DELETE FROM test.tab_a WHERE id = 2;
   DELETE FROM test.tab_a WHERE id = 3;

END//

CREATE TRIGGER test.insdel BEFORE DELETE
    ON test.tab_a FOR EACH ROW 
    BEGIN 
        SET @local_user_bd:= "rpl_sys_user@localhost";
        SET @local_time_bd:= NOW();
        INSERT INTO test.tab_b  VALUES (NULL, @local_time_bd, @local_user_bd);
    END//

delimiter ;

CALL test.insdel();
SELECT * FROM test.tab_a;
SELECT * FROM test.tab_b;


