MySQL學習筆記 四

2022-07-30 22:09:13 字數 1496 閱讀 6041

補充知識,後續可能會用到:

1,auto_increment關鍵字(在尾部新增,放在主鍵後面):設定變數為自增變數

2,一般情況下,mysql的預設是以; 作為結束執行語句,與觸發器中需要的分行起衝突

解決辦法:delimiter ||,可以將結束符號變成||

當觸發器建立後,可用delimiter;還原;

一,觸發器:顧名思義,觸發器就是在對錶進行插入,更新,刪除操作時會觸發的操作

1.1建立觸發器

格式:在每個行的表名觸發的操作之前/之後建立觸發器名

create trigger 觸發器名 before|after 觸發事件

on 表名 for each row

begin

執行語句列表

end

觸發的操作有三種:

insert:insert觸發進行操作,load data和replace也同樣會觸發操作。

update:更新觸發進行操作。

delete:刪除觸發進行操作,更換也會觸發操作。

注意:對於一張表來說不能有倆個觸發操作同樣的觸發器,只能各自有乙個。

1.2刪除觸發器:

drop trigger器名

1.3觸發器的作用:當對資料表進行操作前後,觸發器可用來檢查資料表某些資料,或是進行對資料表的操作(插入某項資料,刪除某項資料)

實驗用的雇員資料表,數項設定為auto_increment自增屬性,插入時自動增加。

//增加數列列的語句:alter table employee add column number int(1)primary key auto_increment;

可以知道當前人數有7位,假定我們設定只能存入七位職員資料,通過乙個觸發器inspeck判斷插入前人數(數目)是否超過人數限制7位

在插入員工之前建立觸發器檢查 

對於每一行

開始if(從員工中選擇計數(id))> = 7然後

插入aaaaaaaa值(1); //由於目前的mysql的沒有丟擲異常方法,設定乙個語句插入不存在的表資料達到丟擲異常效果

萬一;結束

|| //結束標誌通過delimiter ||改為||

此時已知表中有六位職員,只能新增最後一位,達到觸發器限制,會在新增前(之前)限制新增。

觸發器可以使用的場景有很多,且具有一定邏輯性,例如:一張貨物表,一張訂單表,當新增乙個新訂單時需要檢查貨物數量是否達到訂單要求,可以使用觸發器在訂單插入前檢查另一表中數量。

最後,刪除觸發器,畢竟一張表同一型別的觸發器只能有乙個。

掉落觸發檢查;

記得要將結束符改回來:delimiter;

(一)(二)

(三)

MySQL學習筆記 四

上篇我們學會了如何建立乙個資料庫和資料庫表,並知道如何向資料庫表中新增記錄。那麼我們如何從資料庫表中檢索資料呢?1 從資料庫表中檢索資訊 實際上,前面我們已經用到了select語句,它用來從資料庫表中檢索資訊。select語句格式一般為 以前所使用的 表示選擇所有的列。2 查詢所有資料 mysql ...

MySQL學習筆記(四)

mysql支援regexp的正規表示式 找出以a d 為開頭的sname select from stu where sname regexp a d 接下來介紹一下與時間有關的函式。獲取當前時分秒 獲取當前的年月日 獲取當前的時間,年月日時分秒 返回日期date是星期幾 1 星期天,2 星期一,7...

mysql學習筆記(四)

23資料備份和恢復 1 備份 使用mysqldump命令備份 mysqldump u user h localhost p password dbname table1,table2 filename.sql 備份所有資料庫 mysqldump u user h localhost p all da...