mysql 資料備份與儲存過程

2022-08-18 23:06:22 字數 2238 閱讀 5009

目錄備份與恢復

修改全域性的  

set global transaction isolation level read committed;

或者:set @@tx_isolation = "asasasasas-read";

修改區域性

set session transaction isolation level read committed;

@@系統內建變數

@表示使用者自定義的變數

是任意的sql語句的組合,被放到某乙個儲存過程中,類似於乙個函式,有乙個函式名/引數/還有函式體.
其中可以包含任何的sql語句,邏輯處理,事務處理,所有的我們學過的sql語句都可以放到裡面
應用程式只關注業務邏輯,所有與資料相關的邏輯封裝到mysql中

應用程式既要處理業務邏輯,還要編寫sql語句

通過orm框架, 使用物件關係對映,自動生成sql語句並執行

# 語法

create procedure p_name(p_type p_name p_date_type)

begin

sql......

end# p_type 引數的型別 in 輸入 out 輸出必須是乙個變數,不能是值 inout 即可輸出也可輸入

# p_name 引數的名字

# p_data_type 引數的資料型別 如 int float

案例

delimiter |

create procedure a1(in a int, in b int, out c int)

begin

set c = a + b;

end |

delimiter ;

# 呼叫

set @res =0;

call a1(1,1,@res);

select * from @res;

# 刪除

drop procedure 名稱;

# 檢視

show create procedure 名稱

# 檢視全部 例如 db庫下的所有

select name from mysql.proc where db = 庫名 and type = "procedure";

delimiter |

create procedure transfer2(in aid int,in bid int,in m float,out res int)

begin

declare exit handler for sqlexception

begin

# 異常處理**

set res = 99;

rollback;

end;

start transaction;

update account set money = money - m where id = aid;

update account set money = moneys + m where id = bid;

commit;

set res = 1;

end|

delimiter ;

# 備份

mysqldump.exe

mysqldump -u使用者名稱 -p密碼 資料庫 表名1 表名2 .... > 檔案路徑....

# 注意 第乙個表示資料庫 後面全都是表名

mysqldump -uroot -p day41 student >

#備份多個資料庫

mysqldump -uroot -p111 --databases day41 day40 > x3x.sql

#指定 --databases 後匯出的檔案包含 建立庫的語句 而上面的方式不包含

#備份所有資料

mysqldump -uroot -p111 --all-databases > all.sql

#自動備份

linux crontab 指令可以定時執行某乙個指令

# 恢復資料:

沒有登入mysql

mysql < 檔案的路徑

已經登入了mysql

source 檔案路徑

注意: 如果匯出的sql中沒有包含選擇資料庫的語句 需要手動加上

個人備份 mysql儲存過程

引數 插入記錄的起始id,客戶id,記錄數,初始使用者名稱 delimiter create procedure batchinsert in init int in cid int in loops int in username varchar 64 begin declare myid int...

資料備份恢儲存過程

if exists select from dbo.sysobjects where id object id n dbo p restoredb and objectproperty id,n isprocedure 1 drop procedure dbo p restoredb go 恢復指定...

資料庫備份儲存過程

use wechat go object storedprocedure dbo p backupdb script date 2017 11 22 11 38 23 set ansi nulls on goset quoted identifier on gocreate proc dbo p b...