一、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造数