一、MySql造数存储过程实例
mysql造数
-- 第一步,创建临时表 CREATE TEMPORARY TABLE IF NOT EXISTS tmp_table ( `id` VARCHAR (64) NOT NULL, `second_id` VARCHAR (64) NOT NULL, `total_amount` DOUBLE (18, 2) DEFAULT NULL, `total_day` INT (11) DEFAULT NULL, `create_time` datetime NOT NULL, `edit_time` datetime DEFAULT NULL, `editor` VARCHAR (50) DEFAULT NULL, `status` INT (11) NOT NULL DEFAULT '0' ) DEFAULT CHARSET = utf8mb4; -- 第二步,使用前先清空临时表 TRUNCATE TABLE tmp_table; -- 第三步,定义存储过程 #定义存储过程 delimiter ##num_limit 要插入数据的数量,rand_limit 最大随机的数值 DROP PROCEDURE IF EXISTS insert_test_val ; CREATE PROCEDURE insert_test_val (IN num_limit INT) BEGIN DECLARE i INT DEFAULT 1; DECLARE id VARCHAR (64) DEFAULT 1; DECLARE second_id VARCHAR (64) DEFAULT 1; WHILE i <= num_limit DO INSERT INTO testdb.tmp_table ( `id`, `second_id`, `total_amount`, `total_day`, `create_time`, `edit_time`, `editor`, `status` ) VALUES ( id, second_id, ceiling(5 - 1 + rand() *(10 -(5 - 1))), FLOOR(5 + RAND() *(7 + 1 - 5)), SYSDATE(), SYSDATE(), 'mysql存储过程', '0' ) ; SET id = id + 1 ; SET second_id = second_id + 1 ; SET i = i + 1 ; END WHILE ; END -- 第四步,调用存储过程 #调用存储过程 CALL insert_test_val (10000) ; -- 第五步,可跳过 #查看临时表(检查存储过程是否生成数据) SELECT * FROM tmp_table ; -- 第六步,插入到目标表 INSERT INTO `testdb`.`target_table` (`id`,`second_id`,`total_amount`,`total_day`,`create_time`,`edit_time`,`editor`,`status`) SELECT * FROM tmp_table ; -- 第七步,删除存储过程生成的数据(若不需要删除则跳过) DELETE FROM TB_CS_CASE_ORDER WHERE id = second_id ; -- 第八步,删除存储过程(若不需要删除则跳过) DROP PROCEDURE IF EXISTS insert_test_val ;
二、PostgreSql造数存储过程实例
postgresql造数
三、SqlServer造数存储过程实例
sqlserver造数