mysql觸發器相關的企業面試題 MySQL面試題

2021-10-22 10:28:50 字數 1708 閱讀 7108

mysql> select * from tb_emp6;

empty set (0.07 sec)

mysql> select * from tb_emp7;

empty set (0.03 sec)

mysql> desc tb_emp6;

| field | type | null | key | default | extra |

| id | int(11) | no | pri | null | |

| name | varchar(25) | yes | | null | |

| deptid | int(11) | yes | mul | null | |

| salary | float | yes | | null | |

4 rows in set (0.00 sec)

mysql> desc tb_emp7;

| field | type | null | key | default | extra |

| id | int(11) | no | pri | null | |

| name | varchar(25) | yes | | null | |

| deptid | int(11) | yes | | null | |

| salary | float | yes | | 0 | |

4 rows in set (0.04 sec)

建立乙個名為 double_salary 的觸發器,觸發的條件是向資料表 tb_emp6 中插入資料之後,再向資料表 tb_emp7 中插入相同的資料,並且 salary 為 tb_emp6 中新插入的 salary 字段值的 2 倍。輸入的 sql 語句和執行過程如下所示:

mysql> create trigger double_salary

-> after insert on tb_emp6

-> for each row

-> insert into tb_emp7

-> values (new.id,new.name,deptid,2*new.salary);

query ok, 0 rows affected (0.25 sec)

觸發器 double_salary 建立完成之後,向表 tb_emp6 中插入記錄時,同時向表 tb_emp7 中插入相同的記錄,並且 salary 欄位為 tb_emp6 中 salary 字段值的 2 倍,如下所示:

mysql> insert into tb_emp6

-> values (1,'a',1,1000),(2,'b',1,500);

query ok, 2 rows affected (0.09 sec)

records: 2 duplicates: 0 warnings: 0

mysql> select * from tb_emp6;

| id | name | deptid | salary |

| 1 | a | 1 | 1000 |

| 2 | b | 1 | 500 |

3 rows in set (0.04 sec)

mysql> select * from tb_emp7;

| id | name | deptid | salary |

| 1 | a | 1 | 2000 |

| 2 | b | 1 | 1000 |

2 rows in set (0.06 sec)

MySQL 觸發器相關語句

若declare報missing semicolon的錯誤,在sql語句前加上 delimiter 建立觸發器 delimiter create trigger 觸發器名 after 操作名 如update delete insert on 表名 for each row begin 要執行的操作 ...

觸發器 mysql觸發器

觸發器是一種特殊的儲存過程,它在插入 刪除或修改特定表中的資料時觸發執行,它比資料庫本身標準的功能有更精細和更複雜的資料控制能力。和儲存過程一樣,很少使用。1 觸發器的作用 2 建立觸發器 建立測試環境 mysql create database test db query ok,1 row aff...

mysql觸發器的要素 MySQL觸發器

觸發器是一類特殊的事務,可以監視某種資料操作 insert,update,delete 並觸發相關操作 insert,update,delete 觸發器建立之四要素 監視地點 table 監視事件 insert,update,delete 觸發時間 after,before 觸發事件 insert,...