1)对触发器,用其来实现数据完整性,举出两个业务规则例子,并使用触发器 加以实现。要求一个是 AFTER 类触发器,一个是 BEFORE 类触发器
时间: 2024-05-09 19:15:54 浏览: 12
业务规则1:订单表中的订单金额必须大于0,否则不允许插入数据。
AFTER 类触发器实现:
```
CREATE TRIGGER after_order_insert
AFTER INSERT ON orders
FOR EACH ROW
BEGIN
IF NEW.order_amount <= 0 THEN
DELETE FROM orders WHERE order_id = NEW.order_id;
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = '订单金额必须大于0';
END IF;
END;
```
BEFORE 类触发器实现:
```
CREATE TRIGGER before_order_insert
BEFORE INSERT ON orders
FOR EACH ROW
BEGIN
IF NEW.order_amount <= 0 THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = '订单金额必须大于0';
END IF;
END;
```
业务规则2:员工表中的年龄必须大于等于18岁,否则不允许插入数据。
AFTER 类触发器实现:
```
CREATE TRIGGER after_employee_insert
AFTER INSERT ON employees
FOR EACH ROW
BEGIN
IF YEAR(CURDATE()) - YEAR(NEW.birth_date) < 18 THEN
DELETE FROM employees WHERE employee_id = NEW.employee_id;
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = '员工必须年满18岁';
END IF;
END;
```
BEFORE 类触发器实现:
```
CREATE TRIGGER before_employee_insert
BEFORE INSERT ON employees
FOR EACH ROW
BEGIN
IF YEAR(CURDATE()) - YEAR(NEW.birth_date) < 18 THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = '员工必须年满18岁';
END IF;
END;
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)