Mysql指令碼迴圈批量插入陣列資料

2021-09-10 02:06:03 字數 3644 閱讀 7727

·首次寫部落格,不知道說點啥,直接上點乾貨,希望大家指出不足之處,共同進步。

儲存過程、巢狀迴圈、mysql陣列概念、變數、擷取字串、字串去掉指定字元

/*資料表中涉及到某一列必填唯一值,唯一值的處理*/

-- 清除ordersn中唯一值時間的小數點

update ecjia_order_info set order_sn =

replace

(order_sn,

'.',

'') where order_sn like '%.%'

;-- 批量建立資料

drop procedure if exists perorder;

delimiter //

create procedure perorder()

begin

declare userstr text

; declare commanum int;

/*陣列長度*/

declare i int default1;

declare j int default0;

declare uid int default0;

declare mobile varchar(16

)default

'1';

set userstr=

"600_18702725261,601_18702725262,602_18702725263,603_18702725264,604_18702725265,605_18702725266,606_18702725267,607_18702725268,608_18702725269,609_18702725270,610_18702725271,611_18702725272,612_18702725273,613_18702725274,614_18702725275,615_18702725276,616_18702725277,617_18702725278,618_18702725279"

;/*陣列長度=逗號個數+1*/

select length

(userstr)

-length

(replace

(userstr,

',','')

)+1 into @commanum;

/*@commanum 賦值的第二種寫法*/

--set @commanum :

=length

(userstr)

-length

(replace

(userstr,

',','')

)+1;

-- select @commanum;

/*執行可檢視陣列數量*/

while i <= @commanum do

/*遍歷每個使用者的uid,mobile*/

select substring_index

(substring_index

(userstr,

',',i)

,'_',1

),substring_index

(substring_index

(userstr,

',',i)

,'_',-

1)into @uid,@mobile;

/*迴圈插入資料*/

set j =0;

/*j不可忘記歸0*/

while j <

100do

insert

into

ecjia_order_info

(store_id, order_sn, user_id, order_status, shipping_status, pay_status, consignee, country, province, city, district, street, address, longitude, latitude, zipcode, tel, mobile, email, best_time, sign_building, postscript, shipping_id, shipping_name, expect_shipping_time, pay_id, pay_name, how_oos, how_surplus, pack_name, card_name, card_message, inv_payee, inv_content, goods_amount, shipping_fee, insure_fee, pay_fee, pack_fee, card_fee, money_paid, surplus, integral, integral_money, bonus, order_amount, from_ad, referer, add_time, confirm_time, pay_time, shipping_time, auto_delivery_time, pack_id, card_id, bonus_id, invoice_no, extension_code, extension_id, to_buyer, pay_note, agency_id, inv_type, tax, is_separate, parent_id, discount, is_delete, delete_time, is_settlement, sign_time)

values

('62'

,unix_timestamp

(current_timestamp(6

)),@uid,

'0',

'0',

'0',

'壓測資料'

,'cn'

,'cn11'

,'cn1101'

,'cn110101'

,' '

,'北京北京市東城區cs'

,null

,null,''

,'',@mobile ,'',

'','',

'','3',

'順豐速運',''

,'10'

,'支付寶'

,null

,null

,null

,null,''

,null,''

,'1062.00'

,'0.00'

,'0.00'

,'0.00'

,'0.00'

,'0.00'

,'0.00'

,'0.00'

,'0'

,'0.00'

,'0.00'

,'1062.00'

,'0'

,'mobile'

,'1543521317'

,'0'

,'0'

,'0'

,'0'

,'0'

,'0'

,'0'

,null,''

,'0'

,null

,null

,'0',''

,'0.00'

,'0'

,'0'

,'0.00'

,'0'

,null

,'0'

,'0');

set j=j+1;

end while

;set i=i+1;

end while

;end

//執行儲存過程

call perorder()

;

mysql 迴圈插入 mysql 迴圈批量插入

背景 前幾天在mysql上做分頁時,看到有博文說使用 limit 0,10 方式分頁會有丟資料問題,有人又說不會,於是想自己測試一下。測試時沒有資料,便安裝了乙個mysql,建了張表,在建了個while迴圈批量插入10w條測試資料的時候,執行時間之長無法忍受,便查資料找批量插入優化方法,這裡做個筆記...

批量插入資料指令碼,mysql報錯

由於開啟過慢查詢日誌,因為我們開啟了bin log,我們就必須為我們的function指定乙個引數。show variables like log bin trust function creators set global log bin trust function creator 1 這樣新增...

mysql 批量插入 Mysql批量插入分析

前言最近發現幾個專案中都有批次插入資料庫的功能,每個專案中批次插入的寫法有一些差別,所以本文打算對mysql的批次插入做乙個詳細的分析。準備1.jdk1.7,mysql5.6.38 2.準備庫和表 測試與分析 下面準備幾種插入的方式來分析優劣 1.statement插入方式 準備資料,然後通過sta...