mysql> CREATE TABLE emploee (
-> name CHAR(64) NOT NULL,
-> email CHAR(64),
-> password CHAR(64),
-> PRIMARY KEY (email)
-> ) ENGINE = InnoDB;
Query OK, 0 rows affected (0.01 sec)
#InnoDB,MyISAM
#两种类型有什么区别:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。
#MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持,外键等高级数据库功能。
#ENGINE= InnoDB 修改表的引擎

#什么是事务表呢:

#事务表就是可以进行Transaction事务回滚操作, InnoDB是一种数据库存储引擎.他是事务型数据库的首选引擎,支持ACID事务,支持行级锁定。InnoDB是为处理巨大数据量时的最大性能设计。

#InnoDB存储引擎完全与MySQL服务器整合,InnoDB存储引擎为在主内存中缓存数据和索引而维持它自己的缓冲池。

#什么是非事务表?

#Nontransactional Tables,非事务表,不支持事务的表,也就是使用MyISAM存储引擎的表。
#非事务表的特点是不支持回滚

mysql> CREATE TABLE log ( id INT AUTO_INCREMENT, email CHAR(64), message TEXT,
-> status ENUM('FAIL','OK')DEFAULT 'FAIL',
-> ts TIMESTAMP,
-> PRIMARY KEY(id)
-> )ENGINE=MyISAM;
Query OK, 0 rows affected (0.00 sec)
#ENUM进行枚举
-> delimiter $$
-> CREATE TRIGGER tr_employee_insert_before BEFORE INSERT ON emploee
-> FOR EACH ROW
-> BEGIN
-> INSERT INTO log(email,message)
-> VALUES (NEW.email,CONCAT('Adding employee',NEW.name));
-> SET @LAST_INSERT_ID = LAST_INSERT_ID();
-> END $$ mysql> CREATE TRIGGER tr_employee_insert_after AFTER INSERT ON emploee
-> FOR EACH ROW
-> UPDATE log SET status = 'OK' WHERE id = @LAST_INSERT_ID;

 

mysql> SET @pass = PASSWORD('XYZZ');
Query OK, 0 rows affected (0.00 sec) mysql> INSERT INTO emploee(name,email,password)
-> VALUES('chuck','chuck@163.com',@pass);
Query OK, 1 row affected, 1 warning (0.01 sec) mysql> select * from emploee;
+-------+---------------+-------------------------------------------+
| name | email | password |
+-------+---------------+-------------------------------------------+
| chuck | chuck@163.com | *186290269C2BC1FE5ADC8244109A286B7910AC1A |
+-------+---------------+-------------------------------------------+
1 row in set (0.00 sec) mysql> START TRANSACTION;
Query OK, 0 rows affected (0.00 sec) mysql> SET @pass = PASSWORD('xzy')
-> ;
Query OK, 0 rows affected (0.00 sec) mysql> INSERT INTO emploee(name,email,password)
-> VALUES('quan','quan.qq.com',@pass);
Query OK, 1 row affected, 2 warnings (0.00 sec) mysql> INSERT INTO log(email,message)
-> VALUES(‘zhi.qq.com’,'badbad'); mysql> COMMIT; #START TRANSACTION==开启事务标志 #COMMIT: ====结束事务标志,不执行commit,事务并没有提交,若退出,事务回滚 #mysql事务支持的引擎是InnoDB #默认情况下autocommit的值为1 mysql> show variables like 'autocommit';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| autocommit | ON |
+---------------+-------+
1 row in set (0.00 sec) mysql> # 当autocommit为开启状态时,即使没有手动start transaction开启事务,mysql默认也会将用户的操作当做事务即时提交。 #当autocommit为ON的情况下,并且又手动开启了事务,那么mysql会把start transaction 与 commit之间的语句当做一次事务来处理,默认并不会帮用户提交需要手动提交,如果用户不提交便退出了,那么事务将回滚。

  

 

ZAQI的更多相关文章

  1. 学习KnockOut第一篇之Hello World

    学习KnockOut第一篇之Hello World 笔者刚开始学习KnockOut.写的内容就相当于一个学习笔记.且在此处向官网致敬,比较喜欢他们家的Live Example版块,里面有jsFiddl ...

  2. openstack手动玩转

    <一,preface Important Project Network> openstack or all most cloud env Network desgine  is so m ...

  3. JMeter中BeanShell Sampler调试分享

    BeanShell脚本 String s = "s"; String y = "y"; boolean result = s.equals(y); vars.p ...

随机推荐

  1. java中生成和验证jwt

    在这篇文章中主要记录一下在Java中如何使用 java 代码生成jwt token,主要是使用jjwt来生成和验证jwt,关于什么是JWT,以及JWT可以干什么不做详解. jwt的格式: base64 ...

  2. 热身训练1 ping ping ping

    点此进入 题意: 一棵树,n+1 个节点,以0号节点为根,给出端点(a,b),节点a到节点b的路径上,至少有一个点是"坏掉的",求"坏掉的点"最少 分析: St ...

  3. 『学了就忘』Linux基础 — 4、VMware安装

    目录 1.VMware介绍 2.VMware主要特点 3.VMware建议配置 4.VMware安装 1.VMware介绍 VMware是一个虚拟PC的软件,可以在现有的操作系统上虚拟出一个新的硬件环 ...

  4. MySQL 的架构与组件

    MySQL 的逻辑架构图设计图 连接/线程处理:管理客户端连接/会话[mysql threads] 解析器:通过检查SQL查询中的每个字符来检查SQL语法,并为每个SQL查询生成  SQL_ID. 此 ...

  5. OKhttp3的使用教程

    首先在build.gradle下的dependencies下添加引用. implementation "com.squareup.okhttp3:okhttp:4.9.0" 然后编 ...

  6. AtCoder Beginner Contest 182 F

    F - Valid payments 简化题意:有\(n\)种面值的货币,保证\(a[1]=1,且a[i+1]是a[i]的倍数\). 有一个价格为\(x\)元的商品,付款\(y\)元,找零\(y-x\ ...

  7. Django 实现分页功能(django 2.2.7 python 3.7.5 )

    Django 自带名为 Paginator 的分页工具, 方便我们实现分页功能.本文就讲解如何使用 Paginator 实现分页功能. 一. Paginator Paginator 类的作用是将我们需 ...

  8. 基于SpringBoot项目MyBatis分页插件实现分页总结

    前言 在使用Mybatis时,最头痛的就是写分页了,需要先写一个查询count的select语句,然后再写一个真正分页查询的语句,当查询条件多了之后,会发现真的不想花双倍的时间写 count 和 se ...

  9. k8s之mutating webhook + gin

    1.知识准备 1.Webhook 是一种用于接收准入请求并对其进行处理的 HTTP 回调机制 2.Webhook 接收来自apiserver的回调,对回调资源做一些校验.注入.修改元数据等工作 3.来 ...

  10. 第三课 Dubbo设计中的设计模式

    责任链模式  责任链模式在Dubbo中发挥的作用举足轻重,就像是Dubbo框架的骨架.Dubbo的调用链组织是用责任链模式串连起来的. 责任链中的每个节点实现Filter接口,然后由ProtocolF ...