mysql觸發器例項

2021-08-25 04:10:00 字數 2754 閱讀 7877

有乙個學生管理程式,涉及到學生的證書,在這個程式裡,學生可以自己新增乙個或多個證書,把自己的證書資訊新增到系統裡,之後管理員對這些資訊進行審核,確定證書的真實性。當學員的所有證書都審核通過後,學員的狀態就會變為誠信,反之,只要有乙個證書沒有審核通過,學員狀態就變為非誠信。或者是學員又重新上傳了乙個證書後,學員狀態又變為非誠信,當管理員審核通過後,學員狀態即改為程式。

學員表結構:(這裡為了簡單,省去或修改了部分資訊)

學員id,名稱,性別,狀態

證書表結構:

證書id,名稱,狀態,學員id

首先來建立這兩個表,如下是建表語句:

view plaincopy to clipboardprint?

/**

* 建立乙個學生表

*  

*/ create table `students` (  

`id` integer not null auto_increment,  

`name` varchar(45) not null,  

`***` varchar(1) not null,  

`status` integer not null,  

primary key (`id`)  

)  

engine = innodb;  

/**

* 建立乙個證書表

*  

*/ create table `certs` (  

`id` integer not null auto_increment,  

`name` varchar(45) not null,  

`status` integer not null,  

`student_id` integer not null,  

primary key (`id`)  

)  

engine = innodb;

/**

插入學生資料

* */

insert into students (id, name, ***, status) values(1, 'liuhongjun', 'm', 1);

insert into students (id, name, ***, status) values(2, 'pandeyou', 'm', 1);

/**

* 插入證書資料

* */

insert into certs (id, name, status, students_id) values (1, 'accp', 1, 1);

insert into certs (id, name, status, students_id) values (2, 'osta', 1, 1);

資料說明:

建好的的資料都是完整的,學員liuhongjun,對應了有兩個證書,分別是accp和osta證書,證書的狀態都為1,也就是審核通過的。

所以學員liuhongjun的狀態是1,如下:

view plaincopy to clipboardprint?

+----+------------+-----+--------+  

| id | name       | *** | status |  

+----+------------+-----+--------+  

| 1 | liuhongjun | f   |      1 |  

| 2 | pandeyou   | m   |      1 |  

+----+------------+-----+--------+  

+----+------+--------+-------------+  

| id | name | status | students_id |  

+----+------+--------+-------------+  

| 1 | accp |      1 |           1 |  

| 2 | osta |      1 |           1 |  

+----+------+--------+-------------+

接下來,開始建立觸發器,建立觸發器**如下:(觸發器語法請參見:

結果:

+----+------------+-----+--------+

| id | name       | *** | status |

+----+------------+-----+--------+

| 1 | liuhongjun | f   |      1 |

| 2 | pandeyou   | m   |      1 |

+----+------------+-----+--------+

學員liuhongjun的狀態又改為了1。

mysql條件觸發器例項 mysql觸發器例項一則

例子,例項學習mysql觸發器的用法。一,準備二張測試表 1,測試表1 複製 示例 drop table if exists test create table test id bigint 11 unsigned not null auto increment,name varchar 100 n...

mysql觸發器例項

mysql從5.0開始支援觸發器 語法 create trigger 觸發器名稱 on 表名稱 for each row 觸發器sql語句 注意 在mysql中現在還不支援利用call來呼叫儲存過程 示例 比如有論壇的版塊表和文章表,乙個版塊中有多篇文章,在版塊表中有乙個字段用來記錄版塊下的文章數。...

mysql觸發器例項

提前祝大家新年快樂,諸事順利!接下來,記錄一些mysql觸發器的簡單例項。history 全部指標記錄表 self kpi kpi指標參照表 self kpi history kpi指標記錄表 三表itemid相同 判斷history的新增資料是否是kpi指標,如果是就將資料新增到self kpi ...