Skip to content

视图、存储过程与触发器

视图(View)

由查询定义的 虚拟表,不重复存储数据(除非物化场景另行设计)。

sql
CREATE VIEW v_order_summary AS
SELECT o.id, u.email, o.total_amount
FROM orders o
JOIN users u ON u.id = o.user_id;

SELECT * FROM v_order_summary LIMIT 10;

用途:封装复杂关联、权限粒度控制(只授权视图)、兼容旧接口。
注意:基层表结构变更需同步维护视图定义。


存储过程(Stored Procedure)

将一组 SQL 封装在服务端执行,减少往返;适合 批量维护任务、固定报表逻辑。

  • 优点:减少网络交互、可精细授权执行主体。
  • 缺点:版本管理、调试与迁移不如应用代码直观;团队需约定规范。

触发器(Trigger)

INSERT / UPDATE / DELETE 前后自动执行,用于审计、同步冗余字段等。

风险:隐藏副作用、链式触发难排查;线上慎用 复杂触发器,优先考虑应用层或可靠消息。


小结

视图优先用于 查询封装;过程与触发器 克制使用,必须有文档与变更流程。