DELIMITER $$ CREATE PROCEDURE `batchCall`() BEGIN DECLARE id VARCHAR(32); DECLARE create_time VARCHAR(255); DECLARE done INT DEFAULT 0; DECLARE done2 INT ; DECLARE edu_id VARCHAR(255) DEFAULT ''; DECLARE edu_ip VARCHAR(255); DECLARE rs CURSOR FOR (SELECT t.id AS edu_id,t.edu_ip AS edu_ip FROM cap_edu t); DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1; OPEN rs; myloop:LOOP FETCH FROM rs INTO edu_id,edu_ip; IF done = 1 THEN LEAVE myloop; END IF; SET done2 = 0; my2loop:LOOP IF done2 >= 100 THEN LEAVE my2loop; END IF; SET id = REPLACE(UUID(),'-',''); SELECT RandomDateTime(DATE_FORMAT('2016-8-1 00:00:00','%Y-%m-%d %H:%i:%s'),DATE_FORMAT('2016-10-31 23:59:59','%Y-%m-%d %H:%i:%s')) INTO create_time; INSERT INTO edu_performance_data VALUES (id, done2, NULL, NULL, NULL, NULL, NULL, NULL, create_time, edu_id, edu_ip, 1, NULL, NULL, NULL, NULL, NULL, NULL); SET done2 = done2+1; END LOOP my2loop; END LOOP myloop; CLOSE rs; END$$ DELIMITER ;
DELIMITER $$ CREATE FUNCTION `RandomDateTime`(sd DATETIME,ed DATETIME) RETURNS DATETIME BEGIN RETURN DATE_ADD(sd,INTERVAL FLOOR(1+RAND()*((ABS(UNIX_TIMESTAMP(ed)-UNIX_TIMESTAMP(sd)))-1)) SECOND); END$$ DELIMITER ;