视图与触发器

原创 2015年07月06日 23:41:31

视图和基表vs视图与select

视图中保存的仅是一条select语句,源数据来自于基表

检查视图

通过检查视图更新基表数据时,只有满足检查条件的更新语句才能成功执行。
local 检查视图
通过检查视图对表进行更新操作时,只有满足了视图的检查条件时才能正常执行更新语句。(with_check_option 的值为1)
通过级联视图对表进行更新操作时,只有满足所有针对该视图的所有视图的检查条件的更新语句才能正常执行。(with_check_option 的值为2)

MySQL中的触发事件与时间

触发事件有3

  1. insert
  2. update
  3. delete

触发时间有2

  1. before
  2. after

使用触发器的注意事项

  • 触发器中的select语句不能返回结果集
  • 同个表不能创建两个相同触发时间、触发事件的触发程序
  • 触发程序不能使用事务相关语句(start transaction,commit,rollback等)
  • MySQL触发器针对记录进行操作,批量更新数据时,引入触发器会导致批量更新操作性能降低。
  • MyISAM引擎中,触发器不能保证原子性。而在InnoDB中可以。
  • InnoDB存储引擎实现外健约束关系时,可使用级联选项维护外健数据;而在MyISAM中可以使用触发器实现级联修改和删除。
  • MySQL触发器不能对本表执行update操作。
  • 在before触发程序中,自增长的字段的new值为0,不是实际插入新纪录时自动生成的自增型字段值。

临时表

作为主查询的派生表,为了完成查询,需要自动创建临时表存储临时结果集,这样的临时表由MySQL自行创建、自行维护,称为自动创建的临时表

视图、子查询、临时表、派生表

视图通常在子查询语句的from子句中使用,而子查询在主查询的where子句或having子句中使用。
如果视图的主查询的语句是update、delete、insert时,且主查询语句执行了特定字段的更新操作,主查询语句将出错。
派生表相较临时表的生命周期更短,本次select语句执行结束,派生表立即清除。

版权声明:本文为博主原创文章,转载请附上原文链接

在视图上建立触发器的方法详解

http://www.cnblogs.com/binbin1845/archive/2008/03/14/1106054.html对视图建立触发器,SQL Server 2000提供了instead ...
  • fox123871
  • fox123871
  • 2011年05月31日 17:30
  • 11245

oracle创建视图触发器

1.视图触发器语法 2.视图触发器作用 3.视图触发器实例
  • baidu_37107022
  • baidu_37107022
  • 2017年07月08日 00:01
  • 652

数据库(SQL)之trigger(触发器)的使用以及视图(view)的基本实现

对于触发器,首先需要明确的是一下几点: trigger_name 必须给触发器命令,最多64个字符,建议用表的名字_触发器类型的缩写方法命名。如ttlsa_posts_bi(表ttlsa_posts,...
  • u013816144
  • u013816144
  • 2015年12月05日 12:18
  • 1235

创建和触发sql2005视图中的触发器

关于sql2005视图中使用触发器的测试
  • sean20032000
  • sean20032000
  • 2010年08月04日 17:46
  • 2969

6.《MySQL必知必会》视图,存储过程,游标与触发器

注:博客中总结《MySQL必知必会》中的知识点,第22,23,24,25章的核心内容;涉及到的操作符:VIEW,PROCEDURE,CALL,DECLARE,IF,REPEAT,END,FETCH,T...
  • panda_AJ
  • panda_AJ
  • 2017年04月24日 10:32
  • 601

MySQL中视图和触发器学习

创建视图的语法: 其中,algorithm是可选参数,表示视图选择的算法,它有三个选项:undefined,merge,temptable。Undefined表示让MySQL自动选择所要使用的算...
  • weixin_36380516
  • weixin_36380516
  • 2017年01月10日 13:51
  • 914

解密SQL Server 2005中被加密的存储过程、函数、视图、触发器

请参考如下SQL脚本,适用于SQL Server 2005版本:     点击这里下载 /*======================================================...
  • a9529lty
  • a9529lty
  • 2010年04月23日 14:01
  • 5350

SQLite3 触发器、视图的案例

介绍: 安卓默认的数据是SQLite,但SQLite3.6.19之前是不支持外键的,如果有两张表需要关联,用外键是最省事的,但不支持的话怎么办呢?这里就有一个解决办法,就是用事务将两张表关联起来,并...
  • xiaolianglhl
  • xiaolianglhl
  • 2014年12月05日 21:08
  • 721

MySQL触发器、存储过程、自定义函数、视图 常用SQL

1.建立一个userinfo表新增记录时的触发器 将新增日志加入到userinfolog 2.建立一个向userinfo表新增记录的存储过程 3.根据userinfo表的出生日期字段 我们将建立一...
  • truelove12358
  • truelove12358
  • 2015年08月07日 10:00
  • 616

sqlite 视图、触发器、索引和事务总结

一 视图 视图即虚拟表,它的内容都是派生自其他表的查询结果,虽然看起来像基本表,但不是基本表,因为视图的内容是动态生成的。 视图的用处是将频繁使用的复杂的查询放进一个虚拟表,方便查询。 创建视...
  • hustyangju
  • hustyangju
  • 2013年12月22日 21:38
  • 2474
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:视图与触发器
举报原因:
原因补充:

(最多只允许输入30个字)