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. 【二食堂】Beta - Scrum Meeting 10

    Scrum Meeting 10 例会时间:5.25 18:30~18:50 进度情况 组员 当前进度 今日任务 李健 1. 继续文本导入.保存部分的工作issue 2. 完成了技术博客 1. 继续文 ...

  2. FastAPI 学习之路(三十三)操作数据库

    通过创建pydantic模型进行验证提交数据 from pydantic import BaseModel class UserBase(BaseModel): email: str class Us ...

  3. 常用Java API:Calendar日期类

    摘要 在蓝桥杯中有关于日期计算的问题,正好java中的Date类和Calendar类提供了对日期处理的一些方法.Date类大部分方法已经废弃了,所以本文将详细介绍Calendar类. Calendar ...

  4. 绝世好题(DP)

    题目链接:绝世好题 暴力就不用说了,和lis神似,O(n2)妥妥的挂掉,但可以得大部分分(好像是90,80)... 考虑优化,来一发非正解的优化: #include<bits/stdc++.h& ...

  5. c++ 算法 next_permutation

    遇到这个算法是在大牛写的10行的8皇后问题中,下面首先给出这个10行就解决了8皇后的NB代码,我目前还是没有看懂对于皇后不在同一列的判断,因为他巧妙的用了移位操作. #include<iostr ...

  6. [JavaScript闭包]Javascript闭包的判别,作用和示例

    闭包是JavaScript最重要的特性之一,也是全栈/前端/JS面试的考点. 那闭包究竟该如何理解呢? 如果不爱看文字,喜欢看视频.那本文配套讲解视频已发送到B站上供大家参考学习. 如果觉得有所收获, ...

  7. 史上最简单的排序算法?看起来却满是bug

    大家好,我是雨乐. 今天在搜论文的时候,偶然发现一篇文章,名为<Is this the simplest (and most surprising) sorting algorithm ever ...

  8. python微服务

    https://realpython.com/python-microservices-grpc/ https://github.com/saqibbutt/python-flask-microser ...

  9. 体验用yarp连接websocket

    前段时间一看yarp的仓库,wow,终于发布1.0版本了..net也升级到6版本了,之前一直只是用yarp做HTTP转发,今天刚好试试websocket 话不多说,直接开搞 配置集群 首先先配置集群信 ...

  10. 深入理解Spring IOC源码分析

    Spring容器初始化 本文使用的是Spring 5.1.7版本 写在前面:我们看源码一般有3种方式. 第一种直接用class文件,IDEA会帮我们反编译成看得懂的java代码 第二种是用maven的 ...