当前位置:Gxlcms > 数据库问题 > 《mysql必知必会》读书笔记--触发器及管理事务处理

《mysql必知必会》读书笔记--触发器及管理事务处理

时间:2021-07-01 10:21:17 帮助过:28人阅读

TRIGGER newproduct AFTER INSERT ON products FOR EACH ROW SELECT Product added; CREATE TRIGGER--创建一个叫newproduct的新触发器 AFTER INSERT--此触发器将在INSERT语句成功后执行 FOR EACH ROW--代码对每个插入行执行

 

  注意:

    只有表才可以支持触发器,视图、临时表都不支持
    每个表最多支持6个触发器。单一的触发器不能与多个事件或多个表关联。
    如果BEFORE触发器失败,MySQL将不执行请求操作。
    如果BEFORE触发器或语句本身失败,MySQL将不执行AFTER触发器

删除触发器

DROP TRIGGER newproduct;


  触发器不能修改或者覆盖,如要修改必须先删除,再创建。

使用触发器

  INSERT触发器
    可以引用一个叫NEW的虚拟表,来访问插入的行
  DELETE触发器
    引用一个叫OLD的虚拟表,来访问被删除的行
  UPDATE触发器
    书中缺页未介绍

管理事务处理

  MySQL中有好几种引擎,但是不是每种引擎都支持事务处理
  常用的引擎中InnoDB支持事务,MyISAM不支持事务
  几个名词:
    事务transaction
    回退rollback
    提交commit
    保留点savepoint

控制事务管理

ROLLBACK

SELECT * FROM ordertotals;
START TRANSACTION;
DELETE FROM ordertotals;
SELECT * FROM ordertotals;
ROLLBACK;
SELECT * FROM ordertotals;

  注意:事务用来管理INSERT、UPDATE和DELETE。不能回退CREATE或者DROP操作

COMMIT

START TANSACTION;
DELETE FROM orderitems WHERE order_num = 20010;
DELETE FROM order WHERE order_num = 20010;
COMMIT;

  保留点

-- 创建保留点
SAVEPOINT delete1;
-- 回滚到保留点
ROLLBACK TO delete1;

  保留点再执行ROLLBACK或COMMIT后自动释放,mysql 5之后可以用RELEASE SAVEPOINT 明确释放保留点

  更改默认的提交行为

SET autocommit=0

  注意:autocommit标志是针对每个连接,而不是服务器;

《mysql必知必会》读书笔记--触发器及管理事务处理

标签:个数   create   引擎   创建   set   事务处理   color   成功   触发器   

人气教程排行