1.什麼叫做事務?一件事(務)中包含多個操作,在計算機中是指資料庫的一組操作,由一條或者多條sql語句組成。
2.事務的作用:
避免誤操作。
3.事務規則:
要麼都執行成功,要麼都執行不成功,即同時執行成功,同時不執行成功。
例如:銀行轉賬:轉入和轉出操作語句必須保證都執行成功,只要其中有乙個執行不成功,就會全部執行不成功,這也保證了銀行轉賬時的安全性。
4.事務管理包含2部分內容:
(1)開始事務:
start transaction;
(2)事務處理
事務處理包含2種:事務提交(commit;)和事務回滾(rollback;)。
sql語句在開始事務和處理事務之間:
例如:start transaction;
sql語句...commit;
5.事務的4個特性:
一致性:保證資料一致完整性的操作,誤操作的事務會進行事務回滾(違反約束的資料操作)。
原子性:要麼都執行成功,要麼都不執行成功。
永續性:事務提交成功之後,修改的資料就會儲存的在資料庫中,哪怕資料庫出現問題(邏輯問題)。
隔離性:每個事務都應該是同時操作的,不管是否在併發的狀態(多個使用者同時訪問資料庫,每個使用者開啟的事務都不能被其他使用者的操作影響)。
6.事務的隔離等級:4種,如下表(4種隔離等級分別會產生的問題),mysql預設repeatable read(可重讀)隔離等級。
設定事務隔離等級:set session transaction isolation level 隔離等級;
1.儲存過程定義位置:定義在資料庫中2.儲存過程作用:提高sql**的重用性。
3.建立儲存過程的語法:
create procedure 自定義名(引數)
begin
待執行的sql...
end;
另:在dos命令下建立儲存過程,需要按如下方式建立:
delimiter //:作用是將;(分號)轉義為普通字元,使得//(雙斜線)代替;(分號)的結束作用。
delimiter ;:作用是恢復;(分號)的預設的結束作用。
call two():表示執行儲存過程two()(也稱為函式two())。
4.儲存過程的引數型別:3種:in,out,inout
in:表示輸入型別,從外部提供給儲存過程使用的引數。
out:表示輸入型別,儲存過程內部使用的引數。
inout:可以輸入也可以輸出型別。
引數定義語法:
引數型別 自定義引數名 資料型別
例如:
使用in作為引數型別:
use firstdb;
create procedure three(in num char)
begin
select * from users111 where ***=num;
end;
執行儲存過程:call three('女');
使用out作為引數型別:out型別的引數不接受傳值,預設為null,只能在儲存過程**中設定它的值,外部不能設定它的值:
create procedure four(in num char,out num1 varchar(20))
begin
select name into num1 from users111 where ***=num;
end;
執行:call four('女',@num1);
select @num1;
select 列名 into 變數名:表示將查詢結果賦值給變數。@num1:用作接收儲存過程賦值給變數的值,是乙個變數。
create procedure three(in num char,out num1 varchar(20),out num2 int)begin
select name into num1 from users111 where ***=num;
set num2=30;-- 設定值
end;
執行:call three('女',@num1,@num2);
select @num2;
MySQL資料庫之事務管理
4.事務的隔離級別 二 事務的操作 2.案例演示 1.模擬生活 生活中往往出現這樣一種場景,一件事情中包含多個任務,只有多個任務同時完成事務才能辦成,否則只要有乙個任務失敗,整件事情失敗。如公司的運營,所有員工共同配合 2.事務的定義 資料庫事務 transaction 是訪問並可能操作各種資料項的...
MySQL資料庫的事務管理
當前在開發erp系統,使用到的資料庫為mysql。下面介紹下如何開啟事務,以及事務隔離的機制 1.檢查當前資料庫使用的儲存引擎。2.修改前my.ini中的檔案如下 3.修改my.ini的檔案如下。3.1 修改了預設的儲存引擎 3.2 增加了mysql資料庫的事務隔離級別,如果不新增預設是repeat...
資料庫事務管理
一 事務的特性 acid 二 3個問題 幻讀和不可重複讀看起來一樣,但鎖的機制不同,幻讀對應insert和delete 操作,不可重複讀對應update操作 具體說就是不可重複讀鎖定一行資料,是行鎖,幻讀鎖定整個條件區域,是序列鎖。三 樂觀鎖和悲觀所 以上說的鎖,通過資料庫的鎖機制控制,鎖定後其他操...