《重蔚自留地MySQL——mysql事務(wù)觸發(fā)器函數(shù)過程》要點(diǎn):
本文介紹了重蔚自留地MySQL——mysql事務(wù)觸發(fā)器函數(shù)過程,希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
數(shù)據(jù)備份
對(duì)數(shù)據(jù)表內(nèi)容進(jìn)行備份
備份:select [*/字段列表] into outfile 文件路徑 [字段處理] [行處理] from 表
還原:load data infile 文件路徑 into 表 [字段處理] [行處理]
備份 ---------------》 數(shù)據(jù)庫(kù) -> 外部文件:①sql語(yǔ)法是正確的;②SQL語(yǔ)句是有效的
把表內(nèi)數(shù)據(jù)給清理
還原 ---------------》 外部文件 –> 數(shù)據(jù)庫(kù)
對(duì)表結(jié)構(gòu)進(jìn)行備份(也包含數(shù)據(jù))
備份:mysqldump.exe –h –P –u –p 數(shù)據(jù)庫(kù) [數(shù)據(jù)表 數(shù)據(jù)表…] > 文件路徑 (通常以.sql)
還原:mysql.exe –h –P –u –p 數(shù)據(jù)庫(kù) < 文件路徑
mysql進(jìn)入之后:source 文件路徑
事務(wù)處理
自動(dòng)處理:autocommit = on(默認(rèn)),改成off手動(dòng)處理
手動(dòng)處理:只在需要使用事務(wù)的地方開啟
開啟事務(wù):start/begin transaction;
---SQL操作
設(shè)置回滾點(diǎn):savepoint 回滾點(diǎn)名字
---SQL操作
回滾到回滾點(diǎn):rollback to 回滾點(diǎn)名字
--
回滾或者提交:rollback/commit
事務(wù)處理四大特點(diǎn):
原子性:一個(gè)事務(wù)是一個(gè)整體,要么全部成功,要么全部失敗
一致性:在事務(wù)處理的過程前后,數(shù)據(jù)是一致的.在做事務(wù)處理的時(shí)候,數(shù)據(jù)庫(kù)中的數(shù)據(jù)不會(huì)被改變,所以是一致的.
隔離性:一個(gè)事務(wù)的操作,不會(huì)影響另外事務(wù)的操作(兩個(gè)事務(wù)不能針對(duì)同一行記錄)
永久性:一旦事務(wù)提交,那么對(duì)數(shù)據(jù)的修改是永久性的,不可逆
觸發(fā)器
語(yǔ)法:create trigger 觸發(fā)器名字 觸發(fā)時(shí)間 觸發(fā)類型 on 表名 for each row
begin
//觸發(fā)體,每一行都需要語(yǔ)句結(jié)束符,只能是分號(hào)
end
觸發(fā)器是自動(dòng)被調(diào)用
觸發(fā)器時(shí)間:before和after
觸發(fā)類型:insert,update,delete
變量:系統(tǒng)變量和自定義變量
系統(tǒng)變量拜訪:select @@變量名
修改系統(tǒng)變量:set 變量名 = 值;set global 變量名 = 值;
自定義變量:set @變量名 = 值;set @變量名 := 值;select 字段列表 from 表名 into @變量列表;declare 變量名 數(shù)據(jù)類型;
@變量名:全局變量,所有地方都可以使用
變量名:局部變量,只能在函數(shù)內(nèi)
函數(shù):系統(tǒng)函數(shù)和自定義函數(shù)
語(yǔ)法:create function 函數(shù)名(參數(shù)列表) returns 數(shù)據(jù)類型
begin
//函數(shù)體
//分支結(jié)構(gòu)+循環(huán)結(jié)構(gòu)
//return 數(shù)據(jù)
end
參數(shù):參數(shù)必須有數(shù)據(jù)類型:變量名 數(shù)據(jù)類型
函數(shù)調(diào)用:select 函數(shù)名(參數(shù)列表)
存儲(chǔ)過程
語(yǔ)法:create procedure 過程名(參數(shù)列表)
begin
//過程體
end
參數(shù)列表:類型 變量名 數(shù)據(jù)類型
類型:in,out,inout
過程拜訪:call 過程名(參數(shù)列表)
索引:mysql幾大索引
用戶管理:
創(chuàng)建用戶:create user 用戶名@主機(jī)名 indentified by 暗碼
賦予權(quán)限:grant 權(quán)限列表 on 庫(kù).表 to 用戶名@主機(jī)名
收回權(quán)限:revoke 權(quán)限列表 on 庫(kù).表 from 用戶名@主機(jī)名
刪除用戶:drop user 用戶名@主機(jī)名
商品表:pro_goods
訂單表:pro_order
在插入訂單前,先判斷商品庫(kù)存是否足夠,如果不足,則不能生成訂單,如果足則可以.
before insert:判斷庫(kù)存是否足夠,并不終止insert語(yǔ)句的執(zhí)行
after insert:判斷before insert的判斷結(jié)果,如果前面判斷失敗,那么刪除訂單記錄
=========》
after insert:商品表庫(kù)存先減少.判斷商品表庫(kù)存是否大于0,如果小于0,把商品的庫(kù)存回退到之前的數(shù)據(jù),然后將當(dāng)前的這條訂單記錄給刪除.
使用before insert來(lái)對(duì)數(shù)據(jù)進(jìn)行判斷,如果判斷失敗,則想方法不讓insert語(yǔ)句執(zhí)行.
維易PHP培訓(xùn)學(xué)院每天發(fā)布《重蔚自留地MySQL——mysql事務(wù)觸發(fā)器函數(shù)過程》等實(shí)戰(zhàn)技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養(yǎng)人才。
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/7680.html