存储过程制造数据

Posted insane-mr-li

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了存储过程制造数据相关的知识,希望对你有一定的参考价值。

 

 由于之前在写好项目后,由于项目中需要进行sql性能测试,但实际由于数据库中的实际数据量相对比较少,测试效果不佳,所以想着直接采用存储过程,直接生成数据,这样也快速高效。

 

编写mysql存储过程,以下以实际项目为例


 78 -- 建立存储过程
 79 CREATE DEFINER=`root`@`localhost` PROCEDURE `add_storage_memory`( IN n INT )
 80 BEGIN
 81         -- 定义参数
 82     DECLARE
 83         i INT DEFAULT 1;-- 定义
 84         DECLARE commodity_id VARCHAR(40);
 85         DECLARE receipt_id VARCHAR(40);
 86         DECLARE rec_code VARCHAR(20);<br>    set autocommit=0;--设置不自动提交
 87        -- while 循环来一下,生成百万数据就靠它
 88     WHILE
 89             i < n DO
 90             -- 获取 uuid
 91                -- 循环体里面进行一系列的业务操作即可,比如A表插入数据,b表插入数据
 92         set  commodity_id = UUID( );
 93          
 94         SET receipt_id = UUID( );
 95          
 96         SET rec_code = CONCAT( "00000", i ) ;-- 插入商品
 97         INSERT INTO `res_provider_product` ( `id`, `provider_id`, `name`, `specification`, `unit`, `price`, `category_id`, `category`, `creation`, `create_time`, `updater`, `update_time`, `status` )
 98         VALUES
 99             ( commodity_id, 98989b55-09f7-4871-b5c9-085590e786b2, 竹牙签, ‘‘, NULL, NULL, 905f87e7-21bc-47e1-9e61-a85645524cb2, 其他, cd9335a9-06e6-4a39-84ec-2dee58378b4c, 2018-05-18 19:52:04, cd9335a9-06e6-4a39-84ec-2dee58378b4c, 2018-05-18 19:52:04, 1 );-- 插入定价
100         INSERT INTO `res_product_price` ( `id`, `product_id`, `price`, `start_time`, `end_time`, `creation`, `create_time`, `updater`, `update_time`, `status` )
101         VALUES
102             ( UUID( ), commodity_id, 2.00, 2018-06-09, NULL, cd9335a9-06e6-4a39-84ec-2dee58378b4c, 2018-06-09 16:27:43, cd9335a9-06e6-4a39-84ec-2dee58378b4c, 2018-06-09 16:27:43, 50 );-- 插入入库单
103         INSERT INTO `bis_receipt` ( `id`, `code`, `storage_id`, `provider_Name`, `provider_id`, `total_amount`, `business_time`, `creation`, `create_time`, `updater`, `update_time`, `status` )
104         VALUES
105             ( receipt_id, rec_code, 4512ef23-b20b-40f0-9ca1-b3316c4cc6c6, 库存供应商, 98989b55-09f7-4871-b5c9-085590e786b2, 4.00, 2018-06-09 00:00:00, cd9335a9-06e6-4a39-84ec-2dee58378b4c, 2018-06-09 16:30:27, cd9335a9-06e6-4a39-84ec-2dee58378b4c, 2018-06-09 16:30:27, 50 );-- 插入入库单子表
106         INSERT INTO `bis_receipt_b` (
107             `id`,
108             `receipt_id`,
109             `code`,
110             `product_id`,
111             `product_name`,
112             `specification`,
113             `unit`,
114             `quantity`,
115             `price`,
116             `total_price`,
117             `category_id`,
118             `category`,
119             `rec_dept`,
120             `comment`,
121             `creation`,
122             `create_time`,
123             `updater`,
124             `update_time`,
125             `status`
126         )
127         VALUES
128             (
129                 UUID( ),
130                 receipt_id,
131                 rec_code,
132                 commodity_id,
133                 竹牙签,
134                 ‘‘,
135                 NULL,
136                 2.00,
137                 2.00,
138                 4.00,
139                 905f87e7-21bc-47e1-9e61-a85645524cb2,
140                 其他,
141                 NULL,
142                 ‘‘,
143                 cd9335a9-06e6-4a39-84ec-2dee58378b4c,
144                 2018-06-09 16:30:27,
145                 cd9335a9-06e6-4a39-84ec-2dee58378b4c,
146                 2018-06-09 16:30:27,
147                 1
148             );
149         //最后面添加++操作
150         SET i = i + 1;
151          
152     END WHILE;
153   commit;--提交事务
154 END

 

以上是关于存储过程制造数据的主要内容,如果未能解决你的问题,请参考以下文章

ceph分布式存储一体机在制造行业中的应用_JITStack超融合一体机

Java调用SQL Server的存储过程详解(转)

java 登录过程 - android片段,异步任务登录,Asp.net控制器,存储库

mybatis 存储过程

重定向时如何在 Safari 中保留 uri 片段?

MySql触发器使用