admin管理员组文章数量:1568308
2024年7月4日发(作者:)
sql查询触发器语句
SQL触发器是一种特殊的数据库对象,它可以在特定的数据库操作
(例如插入、更新、删除)发生时自动执行一些预定义的动作。触
发器可以用于实现复杂的业务逻辑和数据完整性约束。下面列举了
10个常见的SQL触发器语句:
1. 在员工表上创建触发器,当有新员工加入时,自动在工资表中插
入一条新记录:
```sql
CREATE TRIGGER insert_employee
AFTER INSERT ON employees
FOR EACH ROW
BEGIN
INSERT INTO salaries (employee_id, salary) VALUES
(ee_id, 0);
END;
```
2. 在订单表上创建触发器,当订单状态更新为已发货时,自动更新
库存表中对应商品的数量:
```sql
CREATE TRIGGER update_inventory
AFTER UPDATE ON orders
FOR EACH ROW
BEGIN
IF = '已发货' THEN
UPDATE inventory SET quantity = quantity -
ty WHERE product_id = t_id;
END IF;
END;
```
3. 在学生表上创建触发器,当有新学生加入时,自动更新班级表中
的学生人数:
```sql
CREATE TRIGGER update_class_size
AFTER INSERT ON students
FOR EACH ROW
BEGIN
UPDATE classes SET size = size + 1 WHERE class_id =
_id;
END;
```
4. 在商品表上创建触发器,当商品数量低于阈值时,自动发送库存
警报邮件:
```sql
CREATE TRIGGER send_inventory_alert
AFTER UPDATE ON products
FOR EACH ROW
BEGIN
IF ty < 10 THEN
-- 发送邮件的逻辑
END IF;
END;
```
5. 在订单表上创建触发器,当订单被删除时,自动将对应的商品数
量加回库存:
```sql
CREATE TRIGGER restore_inventory
AFTER DELETE ON orders
FOR EACH ROW
BEGIN
UPDATE inventory SET quantity = quantity + ty
WHERE product_id = t_id;
END;
```
6. 在员工表上创建触发器,当员工的工资被更新时,自动记录工资
变动历史:
```sql
CREATE TRIGGER log_salary_change
AFTER UPDATE ON employees
FOR EACH ROW
BEGIN
INSERT INTO salary_history (employee_id, old_salary,
new_salary, change_date) VALUES (ee_id,
, , NOW());
END;
```
7. 在订单表上创建触发器,当有新订单完成支付时,自动更新销售
统计表中的数据:
```sql
CREATE TRIGGER update_sales_stats
AFTER INSERT ON orders
FOR EACH ROW
BEGIN
IF = '已支付' THEN
UPDATE sales_stats SET total_sales = total_sales +
_amount, order_count = order_count + 1;
END IF;
END;
```
8. 在学生表上创建触发器,当学生的成绩被更新时,自动计算并更
新班级的平均成绩:
```sql
CREATE TRIGGER update_class_avg_score
AFTER UPDATE ON students
FOR EACH ROW
BEGIN
UPDATE classes SET avg_score = (SELECT AVG(score) FROM
students WHERE class_id = _id) WHERE class_id =
_id;
END;
```
9. 在商品表上创建触发器,当商品被删除时,自动更新订单表中的
商品信息:
```sql
CREATE TRIGGER update_order_product
AFTER DELETE ON products
FOR EACH ROW
BEGIN
UPDATE orders SET product_id = NULL WHERE product_id
= t_id;
END;
```
10. 在员工表上创建触发器,当员工的状态从在职变为离职时,自
动将该员工从项目表中移除:
```sql
CREATE TRIGGER remove_employee_from_project
AFTER UPDATE ON employees
FOR EACH ROW
BEGIN
IF = '离职' THEN
DELETE FROM projects WHERE employee_id =
ee_id;
END IF;
END;
```
以上是10个常见的SQL触发器语句的示例,它们展示了触发器的
灵活应用,可以帮助我们实现复杂的业务逻辑和数据完整性约束。
在实际应用中,我们可以根据具体的需求和业务场景来设计和使用
触发器,提高数据库的功能和性能。
版权声明:本文标题:sql查询触发器语句 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1720067455a820346.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论