MySql、PostgreSql、SqlServer三种数据库的造数存储过程实例

喜你入骨 提交于 2019-11-26 16:28:32

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!