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. 第五次Alpha Scrum Meeting

    本次会议为Alpha阶段第五次Scrum Meeting会议 会议概要 会议时间:2021年4月30日 会议地点:线上会议 会议时长:15min 会议内容简介:本次会议以主要围绕卡牌对接的诸多问题与对 ...

  2. [软工顶级理解组] Beta阶段团队贡献分评分

    贡献分评分依据 下述表格适用于前端.后端.爬虫开发者的评分,在此基础上进行增减. 类别 程度 加减分 准时性 提前完成 +0 按时完成 +0 延后完成,迟交时间一天内或未延误进度 -2 延后完成,迟交 ...

  3. 梦开始的地方(Noip模拟3) 2021.5.24

    T1 景区路线规划(期望dp/记忆化搜索) 一看题目发现肯定是概率期望题,再仔细想想这三天做的题,就知道是个期望dp. 考试思路(错): 因为聪聪与可可的10分打法根深蒂固,导致在考试时想到了用深搜( ...

  4. 2021.8.13考试总结[NOIP模拟38]

    T1 a 入阵曲.枚举矩形上下界,之后从左到右扫一遍.用树状数组维护前缀和加特判可以$A$,更保险要脸的做法是双指针扫,因为前缀和单调不减. $code:$ 1 #include<bits/st ...

  5. stm32学习心得体会

    stm32作为现在嵌入式物联网单片机行业中经常要用多的技术,相信大家都有所接触,今天这篇就给大家详细的分析下有关于stm32的出口,还不是很清楚的朋友要注意看看了哦,在最后还会为大家分享有些关于stm ...

  6. EasyX安装教程

    Easyx是什么 就是一款可以在Windows里让你的C++程序里显示图片等的工具. 注意:EasyX不支持Linux.MacOS.不过还有Qt等可以选择. 安装VC/VS Easyx只支持Visua ...

  7. 二进制插入 牛客网 程序员面试金典 C++ Python java

    二进制插入 牛客网 程序员面试金典 题目描述 有两个32位整数n和m,请编写算法将m的二进制数位插入到n的二进制的第j到第i位,其中二进制的位数从低位数到高位且以0开始. 给定两个数int n和int ...

  8. iptables 原理及应用

    转自:iptables 原理及应用 iptables是一个Linux下优秀的nat+防火墙工具,我使用该工具以较低配置的传统pc配置了一个灵活强劲的防火墙+nat系统,小有心得,看了网上也有很多这方面 ...

  9. JAVA笔记7__接口应用/Object类/简单工厂模式/静态代理模式/适配器模式

    /** * 接口应用 */ public class Main { public static void main(String[] args) { Person p = new Person(&qu ...

  10. cf 24 Game (观察+.. 想一想)

    题意: 给一个数N,从1到N. 每次取两个数,三种操作:加.减.乘,运算完得一个数,把那俩数删了,把这个数加进去. 重复操作N-1次. 问是否可能得到24.若可以,输出每一步操作. 思路: 小于4,不 ...