ajanuskevicius
11/18/2016 - 3:18 PM

MySQL - Transaction Data Insert by Procedure

MySQL - Transaction Data Insert by Procedure

DELIMITER $$

CREATE PROCEDURE dataMigrationv1()
  BEGIN
  
	DECLARE scount INT;
        
	SET scount = (SELECT COUNT(*) FROM sandbox.t_source);
    
    START TRANSACTION;
    			
		INSERT INTO sandbox.t_dest (sourceid, NAME, TYPE, created)
			(SELECT sourceid, NAME, TYPE, created FROM sandbox.t_source);
        
        IF ROW_COUNT() = scount THEN
			COMMIT;
            TRUNCATE sandbox.t_source;
		ELSE
			ROLLBACK;
		END IF;

  END$$
  
DELIMITER ;