mysql建立事務,分批次重新整理大資料

2022-07-26 11:51:14 字數 1225 閱讀 7584

對於需要重新整理的大資料量,當一次重新整理資料量過大時,事務太大,會導致binlog檔案太大,在不同的資料庫同步時,可能遇到問題,先整理如下,分批次重新整理資料

1 delimiter //  # 設定//

為結束符,否則命令列中的;會與預設的;衝突

2drop

procedure

ifexists

test; # 如果存在test儲存過程則刪除

3create

procedure

test() # 建立無參儲存過程,名稱為test

4begin

5declare i integer

default

1; # 申明變數 使用者判斷是否繼續迴圈

6declare rownums integer

default

0; # 申明變數 用於記錄總影響行數

7declare limitrow integer

default

2; # 申明變數 用於記錄一次事務的影響行數

8while i>

0 do # 結束迴圈的條件: 當上次重新整理的影響行數<=

0時跳出while迴圈910

# 更新語句

1112

update tf_b_student set create_name =

'test1

'where create_name =

'test

'limit limitrow;

1314

set i=

row_count();

15set rownums = rownums+

i; # 迴圈一次,i加1

16end

while

; # 結束while迴圈

17select

rownums;

18end;19

//20

delimiter ; #重新設定回;作為分割符

2122 call test(); # 呼叫儲存過程

-- 刪除儲存過程

drop procedure if exists test;

-- 檢視儲存過程

select specific_name,security_type,sql_data_access from information_schema.routines where routine_name='test';

MySQL 如何建立事務

事務的建立 隱式的事務 事務沒有明顯的開啟和結束的標記 比如insert update delete語句 delete from 表 where id 1 顯示事務 事物具有明顯的開啟和結束的標記 前提 必須先設定自動提交功能為禁用 set autocommit 0 步驟1 開啟事務 set aut...

建立mysql事務 資料庫事務的建立

使用事務解決銀行轉賬問題 關鍵語句講解 begin transaction 定義變數,用於累計事務執行過程中的錯誤 declare errorsum int set errorsum 0 初始化為0,即無錯誤 轉賬 張三的賬戶少1000元,李四的賬戶多1000元 update bank set cu...

pb建立mysql事務 PB 應用物件和事務物件

應用物件 應用物件 非可視物件 預設字型 程式圖示 應用庫搜尋 pbl 檔案,不建議太大,一般不要超過 800k,目前我們系統就很大 5m 的都有 預設全域性變數 5 個 sqlca sqlda sqlsa error message 應用物件結構,函式,例項變數 其他全域性變數 全域性外部函式 w...