zoukankan      html  css  js  c++  java
  • mysql中的触发器和事务的操作

    触发器 语法

    创建触发器:

    CREATE TRIGGER trigger_name trigger_time trigger_event

                  ON tbl_name FOR EACH ROW trigger_stmt;

                  trigger_time是触发程序的动作时间。

    它能够是BEFORE或AFTER trigger_event指明了激活触发程序的语句的类型。

    trigger_event能够是下述值之中的一个:

    ·             INSERT:将新行插入表时激活触发程序,比如。通过INSERT、LOAD DATA和REPLACE语句。

    ·             UPDATE:更改某一行时激活触发程序,比如,通过UPDATE语句。

    ·             DELETE:从表中删除某一行时激活触发程序,比如。通过DELETE和REPLACE语句。

    样例:

              mysql-> create trigger test 

                        -> before update on table_name for each row 

                        -> update table_name  set  NEW.updateTime = NOW() where id=NEW.ID; 

            假设监測的表和更新的表是同一个   则能够省略为

      mysql-> create trigger test 

                        -> before update on table_name for each row 

                        -> set  NEW.updateTime = NOW() where id=NEW.ID; 


    删除触发器:

    DROP TRIGGER trigger_name;

    样例:

             mysql->drop trigger trigger_name;

    查看触发器:

    样例:

             mysql->desc triggers;

    或者

            mysql->select * from triggers where trigger_name='xxxxxx';


             mysql->show create  trigger  trigger_name;

    ======================================================================================

    事务的特征:ACID

    • Atomicity(原子性)
    • Consistency(稳定性,一致性)
    • Isolation(隔离性)
    • Durability(可靠性)

    注意:事务仅仅针对对数据数据产生影响的语句有效。

    show engines //查看mysql锁支持的数据引擎。

    MyISAM不支持事物,InnoDB支持事物。

    默认情况下,MySQL将以自己主动提交模式执行。这意味着没一条小命令都将当做一个仅仅有一条命令的事物来执行。

    假设要让mysql支持支持事务。仅仅须要改动数据引擎(alter table person type=INNODB)。

    使用start transaction或者begin命令来开启一个事物,使用commit,或者rollback来结束事物。

    事物的结束:事物除了commit,rollback会结束外,使用DDL或者DCL语句也会结束。

    保存点:通过保存点机制:用户能够在事物里用savepoint name命令设置一些保存点,以后用户在使用rollback to savepoint name结束事物时,name之前的数据保存,之后的数据不保存。

    mysql使用事务的keyword

    • begin //打开一个事务。
    • commit //提交到数据库。
    • rollback //取消操作。

    • savepoint //保存。部分取消,部分提交。
    • alter table person type=INNODB //改动数据引擎。

    演示样例:

    1. begin  
    2.  
    3. update person set name='efgh' where id =10 
    4.  
    5. select * from person  
    6.  
    7. rollback  
    8.  
    9. select * from person 

    演示样例:

    1. alter table person type=INNODB 
    2.  
    3. begin  
    4.  
    5. update person set name='efgh' where id =10 
    6.  
    7. select * from person  
    8.  
    9. commit  
    10.  
    11. select * from person  
    12.  
    13. begin  
    14.  
    15. delete from person where id=21 
    16.  
    17. update person set name='efgh' where id =10 
    18.  
    19. commit/rollback 

    针对上面部分提交,必须用到保存点。

    事务保存点注意:

    1.仅仅能取消到某个保存点 rollback to savepoint p1。

    2.不能提交某个保存 commit to savepoint p2//错误写法。

    3.最后commit 把未取消的保存点去不提交到数据。

    事务保存点使用样例:

    1. begin;  
    2.  
    3. update score set score=40 where scoreid=1;  
    4.  
    5. savepoint s1;  
    6.  
    7. update score set score=50 where scoreid=2;  
    8.  
    9. select * from score;  
    10.  
    11. rollback to savepoint s1;  
    12.  
    13. select * from score;  
    14.  
    15. commit。 
  • 相关阅读:
    ADF中遍历VO中的行数据(Iterator)
    程序中实现两个DataTable的Left Join效果(修改了,网上第二个DataTable为空,所处的异常)
    ArcGIS api for javascript——鼠标悬停时显示信息窗口
    ArcGIS api for javascript——查询,然后单击显示信息窗口
    ArcGIS api for javascript——查询,立刻打开信息窗口
    ArcGIS api for javascript——显示多个查询结果
    ArcGIS api for javascript——用图表显示查询结果
    ArcGIS api for javascript——查询没有地图的数据
    ArcGIS api for javascript——用第二个服务的范围设置地图范围
    ArcGIS api for javascript——显示地图属性
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/5085189.html
Copyright © 2011-2022 走看看