例項:
例子
delimiter $
drop procedure if exists `insert_corp`$
create
/*[definer = ]*/
procedure `mop`.`insert_corp`(in loop_time bigint)
/*language sql
| [not] deterministic
| | sql security
| comment 'string'*/
begin
declare i int default 1;
declare corp_parameter bigint;
-- declare duplicate_key int default 0;
-- declare continue handler for 1062 set duplicate_key=1;
set autocommit=0; -- 關閉事務自動提交
while i<=loop_time do
set corp_parameter=concat(20220000000+i); -- 因為表corp與corp_order表中的eccode與ecname不可重複,用迴圈變數生成eccode和ecname的值
insert into corp (eccode,ecname,create_date) values (corp_parameter,corp_parameter,now()); --向表中插入資料的sql語句
insert into corp_order (ecname,eccode,order_date,) values (corp_parameter,corp_parameter,now());
/*if duplicate_key=1 then
select concat ('failed to insert ','corp') as "result";
else
select concat ('created success','corp') as "result";
end if;
*/if mod(i,10000)=0 then --每一萬條提交一次事務
commit;
end if;
set i=i+1;
end while;
end$
delimiter ;
call insert_corp(100000); ---呼叫儲存過程
Mysql資料庫之事務
1.事務 乙個或多個sql語句組成乙個執行單元,這個執行單元要麼全部執行,要麼全部不執行。2.事務特性 1 原子性 乙個事務不可再分,要麼都執行,要麼都不執行。2 一致性 乙個事務的執行會使資料從乙個一致性狀態轉換到另乙個一致性狀態。3 隔離性 乙個事務的執行不受其他同步事務執行的影響。4 永續性 ...
MySQL資料庫之事務
1.sql標準的acid的定義 2.innodb的acid實現 innodb儲存引擎的原子性a和永續性d主要是通過redo重做日誌來實現的,資料一致性除了redo日誌外,需要undo日誌來輔助實現,即當事務提交失敗時,通過undo日誌來實現回滾,取消該事務對資料庫的操作。隔離性i主要是通過鎖和mvc...
資料庫之事務
事務是併發控制的單位,是使用者定義的乙個操作序列。這些操作要麼都做,要麼都不做,是個不可分割的工作單位。如果某一事務成功,則在該事務中進行的所有資料更改均會提交,成為資料庫中永久的組成部分。如果事務遇到錯誤,則必須取消或回滾,所有資料均被更改清除。1 原子性 atomicity 事務是資料庫的邏輯工...