视图与触发器

原创 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语句执行结束,派生表立即清除。

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

相关文章推荐

Sql Server-视图 存储过程 函数 触发器 索引

1.视图 [sql] view plaincopy 视图不是真实存在的基础表而是一个虚拟表,视图所对应的数据并不实际以视图结构存储在数据库中,而是存储在视图...

[MySQL] 存储过程、函数、触发器和视图的权限检查

当存储过程、函数、触发器和视图创建后,不单单创建者要执行,其它用户也可能需要执行,换句话说,执行者有可能不是创建者本身,那么在执行存储过程时,MySQL是如何做权限检查的? 在默认情况下,MySQL...

mysql 存储过程、触发器、视图、游标、分布式事务-之存储过程

存储过程: http://www.cnblogs.com/zhuawang/p/4185302.html
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:视图与触发器
举报原因:
原因补充:

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