欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

一篇文章帶你深入了解Mysql觸發(fā)器

 更新時間:2021年08月02日 11:47:59   作者:zsr6135  
這篇文章主要介紹了MySQL觸發(fā)器概念、原理與用法,結合實例形勢詳細分析了mysql觸發(fā)器相關概念、原理、創(chuàng)建、用法及操作注意事項,需要的朋友可以參考下

基于school數(shù)據(jù)庫中的student, course, sc表,創(chuàng)建滿足下述要求的觸發(fā)器:

數(shù)據(jù)庫navicat cmd界面運行

1.對SC表進行插入或修改時,如果考試成績不在0-100范圍內(nèi)時,則撤銷插入或修改操作。

DELIMITER ;
DROP TRIGGER IF EXISTS `tri_update_grade`;
DELIMITER ;;
CREATE TRIGGER `tri_update_grade` BEFORE UPDATE ON `sc` FOR EACH ROW begin
if new.grade > 100 then
delete from sc;
elseif new.grade < 0 then
delete from sc;
end if;
end
;;
DELIMITER ;
DROP TRIGGER IF EXISTS `tri_insert_grade`;
DELIMITER ;;
CREATE TRIGGER `tri_insert_grade` BEFORE INSERT ON `sc` FOR EACH ROW begin
if new.grade > 100 then
delete from sc;
elseif new.grade < 0 then
delete from sc;
end if;
end
;;

2.對SC表進行插入時,如果學生的選課總學分超過30,則報錯并撤銷插入。

DELIMITER ;
DROP TRIGGER IF EXISTS `tri_insert_credit`;
DELIMITER ;;
CREATE TRIGGER `tri_insert_credit` BEFORE INSERT ON `sc` FOR EACH ROW begin
SELECT sum(Ccredit) INTO @sumcred from Student join SC on SC.Sno=Student.Sno join Course on Course.Cno=SC.Cno WHERE sc.Sno=new.Sno;
if (@sumcred>30)
then
delete from sc;
end if;
end
;;

3.對SC表進行修改時,不允許修改考試成績不及格的學生選課記錄。

DELIMITER ;
DROP TRIGGER IF EXISTS `tri_grade`;
DELIMITER ;;
CREATE TRIGGER `tri_grade` BEFORE UPDATE ON `sc` FOR EACH ROW begin
select grade INTO @gra from sc where sno=new.sno and sno=new.sno;
if (@gra >= 60)
then
set new.grade=20;
else
delete from sc;
end if;
end
;;

4.對STUDENT表進行插入時,如果年齡為空,則將該生年齡設置為所有學生年齡的平均值。

DELIMITER ;
DROP TRIGGER IF EXISTS `tri_student`;
DELIMITER ;;
CREATE TRIGGER `tri_student` BEFORE INSERT ON `student` FOR EACH ROW begin
select avg(Sage) INTO @avgage from student;
SET @old_age = new.Sage;
if @old_age IS NULL
then
set new.Sage=@avgage;
end if;
end
;;

5.在STUDENT表中增加兩列,分別用來存放學生的平均成績和等級,并對SC表進行插入后,自動維護學生的平均成績和等級(85-100,等級為“優(yōu)"; 60-85,等級為“良”,60 以下,等級為“差")

DELIMITER ;
DROP TRIGGER IF EXISTS `tri_comment`;
DELIMITER ;;
CREATE TRIGGER `tri_comment` BEFORE UPDATE ON `student` FOR EACH ROW begin
select avg(Grade) INTO @avggra from sc where sno=new.sno;
if @avggra > 85 then
update sc set new.Savg=@avggra,new.Scomment="you";
else if @avggra > 60 and @avggra <= 85 then
update sc set new.Savg=@avggra,new.Scomment="you";
else
update sc set new.Savg=@avggra,new.Scomment='cha';
end if;
end if;
end
;;
DELIMITER ;

總結

本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關注腳本之家的更多內(nèi)容!

相關文章

  • MySQL中實現(xiàn)高性能高并發(fā)計數(shù)器方案(例如文章點擊數(shù))

    MySQL中實現(xiàn)高性能高并發(fā)計數(shù)器方案(例如文章點擊數(shù))

    這篇文章主要介紹了MySQL中實現(xiàn)高性能高并發(fā)計數(shù)器方案,本文中的計數(shù)器是指如文章的點擊數(shù)、喜歡數(shù)、瀏覽次數(shù)等,需要的朋友可以參考下
    2014-10-10
  • 如何給mysql數(shù)據(jù)庫重新命名(操作步驟)

    如何給mysql數(shù)據(jù)庫重新命名(操作步驟)

    這篇文章主要介紹了如何給mysql數(shù)據(jù)庫重新命名,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05
  • MySQL百萬級數(shù)據(jù),怎樣做分頁查詢

    MySQL百萬級數(shù)據(jù),怎樣做分頁查詢

    這篇文章主要介紹了MySQL百萬級數(shù)據(jù),怎樣做分頁查詢?今天咱們就來聊聊這個話題,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • MySql學習day03:數(shù)據(jù)表之間的連接、查詢詳解

    MySql學習day03:數(shù)據(jù)表之間的連接、查詢詳解

    這篇文章主要介紹了MySql數(shù)據(jù)表之間的連接、查詢,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • 淺談MySQL之淺入深出頁原理

    淺談MySQL之淺入深出頁原理

    首先,我們需要知道,頁(Pages)是InnoDB中管理數(shù)據(jù)的最小單元。Buffer Pool中存的就是一頁一頁的數(shù)據(jù)。當我們要查詢的數(shù)據(jù)不在Buffer Pool中時,InnoDB會將記錄所在的頁整個加載到Buffer Pool中去;同樣,將Buffer Pool中的臟頁刷入磁盤時,也是按照頁為單位刷入磁盤的
    2021-06-06
  • mysql5.5.28安裝教程 超詳細!

    mysql5.5.28安裝教程 超詳細!

    這篇文章主要為大家詳細介紹了mysql5.5.28安裝配置方法圖文教程,文中安裝步驟介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • MySQL中的常用工具實例匯總(推薦)

    MySQL中的常用工具實例匯總(推薦)

    MySQL數(shù)據(jù)庫以體積小、速度快、總體擁有成本低等優(yōu)點,深受廣大中小企業(yè)的喜愛,下面這篇文章主要給大家介紹了關于MySQL中常用工具的相關資料,需要的朋友們可以參考學習,下面來一起看看吧。
    2017-09-09
  • MySQL中的流式查詢及游標查詢方式

    MySQL中的流式查詢及游標查詢方式

    這篇文章主要介紹了MySQL中的流式查詢及游標查詢方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • jdbc中自帶MySQL?連接池實踐示例

    jdbc中自帶MySQL?連接池實踐示例

    這篇文章主要為大家介紹了jdbc中自帶MySQL連接池實踐示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • mysql sql99語法 內(nèi)連接非等值連接詳解

    mysql sql99語法 內(nèi)連接非等值連接詳解

    在本篇文章里小編給大家整理的是一篇關于mysql sql99語法 內(nèi)連接非等值連接的相關知識點文章,有需要的朋友們可以學習下。
    2019-09-09

最新評論