mysql循環 insert插入多條數據


 

 
測試過程中,經常需要造大量的測試數據,手工操作太慢了,所以用mysql的存儲過程實現一下:
 
轉載自:https://www.cnblogs.com/fufilforever/p/14362942.html

開發自測時,數據庫需要造大量數據時,要用到Mysql存儲過程相關知識,下面分享下,希望對小伙伴們有所幫助:

CREATE PROCEDURE test() #創建存儲函數;
BEGIN
DECLARE i INT DEFAULT 1;

WHILE i < 5000 DO

#下面的insert語法要改成自己的表,同時構造value.id,要考慮防重;
INSERT INTO `wbms_1`.`waybill_weight_volume_2`(`id`, `tenant_id`, `waybill_code`, `operate_code`, `volume`, `weight`, `length`, `width`, `height`, `weight_time`, `volume_time`, `ope_type`, `operator_code`, `operator_name`, `operate_station_code`, `operate_station`, `is_delete`, `create_time`, `update_time`, `create_user`, `update_user`, `ts`) VALUES (1356063857646284800+i, 'test', 'ZY1000502218621', 'ZY1000502218621-1-2-', 55.0000, 55.0000, 5.5000, 55.0000, 55.0000, '2020-09-20 16:39:56', '2020-09-20 16:39:56', 3, '21180252', '陳青山', '308766', '南京江駿營業部', 0, '2021-02-01 10:16:32', '2021-02-01 10:16:32', NULL, NULL, '2021-02-01 10:16:32.000');
SET i = i+1;
end WHILE;

END;
CALL test();#調用存儲函數

 

下面是我寫的存儲過程:

CREATE PROCEDURE wmtest1();  #創建存儲過程循環執行,實現插入多條;
BEGIN
DECLARE i INT DEFAULT 275;
WHILE i<276   DO
INSERT INTO `msg_org_config` VALUES(i,2,'001','工單消息'),
                                   (i,3,'001','一般告警消息'),
                                   (i,4,'001','緊急告警消息'),
                                   (i,5,'001','重要告警消息');
                                   
SET i=i+1
END WHILE;
END;
CALL wmtest1();#調用存儲函數

注:存儲過程一定要寫在存儲過程窗口里面,不能寫在mysql的查詢窗口里面,否則會報錯的。

調用可以在查詢窗口中。

 

 

 

執行插入語句

INSERT INTO `org_table` ('org_id','push_way','target_ids','rela_org','push_config') VALUES (246,'02','',246,''),
                                                                                                     (246,'01','',246,'2,3,5,4'),
                                                                                                     (246,'01','124,170,188,227,228,270,271,272,286,287,288',0,'2,3,5,4'),
                                                                                                     (246,'01','129,130,247,261,324,343,350',28,'2,3,5,4');

一直報錯,這里面有個自增的ID,所以我就用了字段,為什么呢?查了半天才 知道,這個字段不能加引號。mysql里加了引號就會報錯。

正確的如下:

 INSERT INTO `org_table` (org_id,push_way,target_ids,rela_org,push_config) VALUES (246,'02','',246,''),
                                                                                                     (246,'01','',246,'2,3,5,4'),
                                                                                                     (246,'01','124,170,188,227,228,270,271,272,286,287,288',0,'2,3,5,4'),
                                                                                                     (246,'01','129,130,247,261,324,343,350',28,'2,3,5,4');

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM