触发器 语法

创建触发器:

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. update person set name='efgh' where id =10
  3. select * from person
  4. rollback
  5. select * from person

演示样例:

  1. alter table person type=INNODB
  2. begin
  3. update person set name='efgh' where id =10
  4. select * from person
  5. commit
  6. select * from person
  7. begin
  8. delete from person where id=21
  9. update person set name='efgh' where id =10
  10. commit/rollback

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

事务保存点注意:

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

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

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

事务保存点使用样例:

  1. begin;
  2. update score set score=40 where scoreid=1;
  3. savepoint s1;
  4. update score set score=50 where scoreid=2;
  5. select * from score;
  6. rollback to savepoint s1;
  7. select * from score;
  8. commit。

mysql中的触发器和事务的操作的更多相关文章

  1. mysql数据库从删库到跑路之mysql:视图、触发器、事务、存储过程、函数

    mysql:视图.触发器.事务.存储过程.函数 一.视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果 ...

  2. mysql:视图,触发器,事务,存储过程,函数

    一.视图 视图是一个虚拟表并不是(正实存在的) 创建老师表 create table teacher( id int primary key auto_increment, tname varchar ...

  3. Mysql视图、触发器、事务、储存过程、函数

    一.视图 什么是视图 视图是有一张表或多张表的查询结果构成的一张虚拟表 为什么使用视图 当我们在使用多表查询时 我们的sql语句可能会非常的复杂,如果每次都编写一遍sql'的话无疑是一件麻烦的事情,这 ...

  4. SQL学习笔记七之MySQL视图、触发器、事务、存储过程、函数

    阅读目录 一 视图 二 触发器 三 事务 四 存储过程 五 函数 六 流程控制 一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名 ...

  5. mysql:视图、触发器、事务、存储、函数、流程控制

    阅读目录 一 视图 二 触发器 三 事务 四 存储过程 五 函数 六 流程控制 回到顶部 一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只 ...

  6. python开发mysql:视图、触发器、事务、存储过程、函数

    一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的 ...

  7. MySQL视图、触发器、事务、存储过程、函数

    视图.触发器.事务.存储过程.函数   阅读目录 一 视图 二 触发器 三 事务 四 存储过程 五 函数 六 流程控制 一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据 ...

  8. MySQL视图、触发器、事务、存储过程、内置函数、流程控制、索引

    一.视图 1.什么是视图 视图就是通过查询得到一张虚拟表,然后保存下来,下次直接使用即可 2.为什么要用视图 如果频繁使用一张虚拟表,可以不用重复查询 3.如何使用视图 create view tea ...

  9. mysql高级:触发器、事务、存储过程、调用存储过程

    一.触发器 二.pymysql事务测试 三.存储过程 四.pymysql调用存储过程 一.触发器  在某个时间发生了某个事件时  会自动触发一段sql语句 create trigger cmd_ins ...

随机推荐

  1. ELKstack 中文指南

    https://www.elastic.co/downloads ELKstack 中文指南 .net Elasticsearch 学习入门笔记   一. es安装相关1.elasticsearch安 ...

  2. 仙人掌的同构(hash)

    关于仙人掌的同构,主要是我太蒟蒻了QAQ,问了好几位大佬才弄好. 手撕仙人掌,你得先有手套 ,你得先了解以下基本知识 a.点双连通分量,没什么好说得,仙人掌上有环,判环用点双 b.树的hash点这里 ...

  3. MySQL主从同步配置(详细图解)

    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 目录 一丶叙述 二丶备份主服务器原有数据到从服务器 三丶配置主服务器master(192.168.4.63) 四丶配置从服务器sl ...

  4. 【Codeforces Round #453 (Div. 2) B】Coloring a Tree

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 从根节点开始. 显然它是什么颜色.就要改成对应的颜色.(如果上面已经有某个点传了值就不用改 然后往下传值. [代码] #includ ...

  5. 洛谷——P3817 小A的糖果

    https://www.luogu.org/problem/show?pid=3817 题目描述 小A有N个糖果盒,第i个盒中有a[i]颗糖果. 小A每次可以从其中一盒糖果中吃掉一颗,他想知道,要让任 ...

  6. HTML5梦幻星空,可用作网页背景

    <html> <head> <title>星空</title> <META http-equiv="X-UA-Compatible&qu ...

  7. 4.auto详解

    #include <iostream> using namespace std; template <calss T1,class T2> auto add(T1 t1, T2 ...

  8. JS /CSS 实现模态框(注册和登录组件)

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  9. JDBC高级特性(二)事务、并发控制和行集

    一.事务 事务是指一个工作单元,它包括了一组加入,删除,改动等数据操作命令,这组命令作为一个总体向系统提交运行,要么都运行成功,要么所有恢复 在JDBC中使用事务 1)con.setAutoCommi ...

  10. SSH进阶(2)——用Struts拦截器实现登陆限制

    拦截器从字面意思来看就是限制.限制用户訪问某些网页.在Action提出请求之前用拦截器来做权限设置,让符合的用户跳入对应的界面中.近期做的一个商城项目中就用到了自己定义的拦截器,实现了一个简单的ses ...