什么时候使用mysql触发器_MySQL触发器的使用
1:觸發器是一種與表操作有關的數據庫對象,當觸發器所在表上出現指定事件時,將調用該對象,即表的操作事件觸發表上的觸發器的執行。
例如:有一個學生表,一個班級表,每當學生添加一個,班級表的人數就增加一個。
相對于的學生表和班級表的實體類
packagecom.betteryanwo.entity;/*** Create by 六
* Date:18-7-7
* 學生表,每添加一個學生,班級表的人數就加一。*/
public classStudent {privateInteger stuID;privateInteger sclassId;publicStudent() {
}publicStudent(Integer stuID, Integer sclassId) {this.stuID =stuID;this.sclassId =sclassId;
}publicInteger getStuID() {returnstuID;
}public voidsetStuID(Integer stuID) {this.stuID =stuID;
}publicInteger getSclassId() {returnsclassId;
}public voidsetSclassId(Integer sclassId) {this.sclassId =sclassId;
}
@OverridepublicString toString() {return "Student{" +
"stuID=" + stuID +
", sclassId=" + sclassId +
'}';
}
}
packagecom.betteryanwo.entity;/*** Create by 六
* Date:18-7-7
* 班級表,每添加一個學生,班級人數就加1.*/
public classClass {privateInteger classID;privateInteger stuCount;publicClass() {
}publicClass(Integer classID, Integer stuCount) {this.classID =classID;this.stuCount =stuCount;
}publicInteger getClassID() {returnclassID;
}public voidsetClassID(Integer classID) {this.classID =classID;
}publicInteger getStuCount() {returnstuCount;
}public voidsetStuCount(Integer stuCount) {this.stuCount =stuCount;
}
@OverridepublicString toString() {return "Class{" +
"classID=" + classID +
", stuCount=" + stuCount +
'}';
}
}
學生表添加
insert into student(stuID,sclassID) values (#{stuID},#{sclassId})
在MySQL中寫的觸發器
DELIMITER $
create trigger tri_stuInsert after insert 創建一個叫tri_stuInsert的觸發器 在插入后,
on studentforeach row 在學生表上創建的觸發器。
begin
declare cint;
set c= (select stuCount from class where classID=new.sclassID);
updateclass set stuCount = c + 1 where classID = new.sclassID;
end$
DELIMITER ;
CREATE TRIGGER trigger_name
trigger_time
trigger_event ON tbl_name
FOR EACH ROW
trigger_stmt
其中:
trigger_name:標識觸發器名稱,用戶自行指定;
trigger_time:標識觸發時機,取值為 BEFORE 或 AFTER;
trigger_event:標識觸發事件,取值為 INSERT、UPDATE 或 DELETE;
tbl_name:標識建立觸發器的表名,即在哪張表上建立觸發器;
trigger_stmt:觸發器程序體,可以是一句SQL語句,或者用 BEGIN 和 END 包含的多條語句。
由此可見,可以建立6種觸發器,即:BEFORE INSERT、BEFORE UPDATE、BEFORE DELETE、AFTER INSERT、AFTER UPDATE、AFTER DELETE。
另外有一個限制是不能同時在一個表上建立2個相同類型的觸發器,因此在一個表上最多建立6個觸發器。
總結
以上是生活随笔為你收集整理的什么时候使用mysql触发器_MySQL触发器的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 3dsmax如何绘制旋转楼梯
- 下一篇: jtable mysql数据库_使用My