事务  -  (transaction / tx)

原子性操作性(不可以分割的操作) - 要么全做, 要么全不做

事务的特点  -  ACID 特性

A - atomicity  原子性 : 不可分割, 要么成功要么全失败

C - Consistency  一致性:  事务前后数据状态要保持一致, 总数一致

I - Isolation -  隔离性 : 多个事务不能看到对方的中间状态(提交或者回滚之前的状态)

D - Duration 持久性: 事务完成后数据要持久化(事务的影响要反映在物理存储上)

不需要显式使用事务语句开始一个事务,当遇到第一个DML语句时,一个事务开始,在出现以下情况时,事务结束。

(1)当遇到 commit 语句 或 rollback 语句时,将提交或回滚事务。

(2)当用户退出 Oracle工具时。

(3)当机器失效或系统奔溃时。

操作方法

begin; -开始事物

commit; - 提交事物

Python 默认是取消自动提交的

rollback- 回撤操作, 只要操作没有执行 commit 就可以进行回滚操作, 撤回

例如:

create table tb_account
  (
  accid char(4) not null,
  uname varchar(20) not null,
  balance float default 0
  )
  insert into tb_account values
  ('1111', '张明禄', 1200.99),
  ('2222', '王大锤', 500);
  -- 开启一个事物   start transaction
  begin;
  update tb_account set balance=balance-1000
  where accid='1111';
  update tb_account set balance=balance+1000
  where accid='2222';
  commit;   -- 提交 才能改变
  rollback;  -- 撤销
 
  begin;
  delete from  tb_account;  -- 没有commmit 不会删除表
  rollback;

SQL 注射*** 
  def main():
      config = {
          'host': 'localhost',
          'user': 'root',
          'passwd': '123456',
          'db': 'hrs',
          'charset': 'utf8',
          'cursorclass': pymysql.cursors.DictCursor
      }
      conn = pymysql.connect(**config)
      try:
          uid = input('用户名: ')
          pwd = input('密码: ')
          with conn.cursor() as cursor:
              # 注射***的万能密码: a' or '1'='1
              """
              sql = "select 'x' from tb_user where username='%s' \
                       and userpass='%s'" % (uid, pwd)
              if cursor.execute(sql) > 0:
              """
              # cursor.callproc('sp_dept_avg_sal', ())
              # 定义存储过程 / PyMySQL调用存储过程
              if cursor.execute(
                      'select 1 from tb_user where username=%s and userpass=%s',
                      (uid, pwd)):
                  print('登录成功, 开始使用系统')
              else:
                  print('用户名或密码错误')
      finally:
          conn.close()

守护进程

守护进程(Daemon Process),也就是通常说的 Daemon 进程(精灵进程),是 Linux 中的后台服务进程。它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。

守护进程是个特殊的孤儿进程,这种进程脱离终端,为什么要脱离终端呢?之所以脱离于终端是为了避免进程被任何终端所产生的信息所打断,其在执行过程中的信息也不在任何终端上显示。由于在 linux 中,每一个系统与用户进行交流的界面称为终端,每一个从此终端开始运行的进程都会依附于这个终端,这个终端就称为这些进程的控制终端,当控制终端被关闭时,相应的进程都会自动关闭。

哈希

Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。

转载于:https://blog.51cto.com/14150615/2352858

数据库 事务提交和回滚相关推荐

  1. Oracle数据库事务回滚和提交,数据库 事务提交和回滚

    事务  -  (transaction / tx) 原子性操作性(不可以分割的操作) - 要么全做, 要么全不做 事务的特点  -  ACID 特性 A - atomicity  原子性 : 不可分割 ...

  2. mysql数据库回滚日志_MySQL中是如何实现事务提交和回滚的?

    什么是事务 事务是由数据库中一系列的访问和更新组成的逻辑执行单元 事务的逻辑单元中可以是一条SQL语句,也可以是一段SQL逻辑,这段逻辑要么全部执行成功,要么全部执行失败 举个最常见的例子,你早上出去 ...

  3. sql 事务提交和回滚_SQL提交和回滚

    sql 事务提交和回滚 The most important aspect of a database is the ability to store data and the ability to ...

  4. SQL service的事务提交和回滚

    SQL service的事务提交和回滚 //开始事务,并且在事务后面紧跟您需要写的sql语句(我这里写的是一条修改语句) BEGIN TRANUPDATE UCML_Organize SET Pare ...

  5. RocketMQ源码分析之RocketMQ事务消息实现原下篇(事务提交或回滚)

    本文将重点分析RocketMQ Broker如何处理事务消息提交.回滚命令,根据前面的介绍,其入口EndTransactionProcessor#proce***equest: OperationRe ...

  6. java pg数据库事务回滚_PG 事务提交与回滚

    在PostgreSQL中,如果执行一个dml或ddl语句,默认一执行完就马上提交了,不能回滚,这样容易导致误操作的发生,避免这个风险的办法是关闭自动提交 1 设置\set AUTOCOMMIT off ...

  7. mysql回滚与错误提示_对mysql事务提交、回滚的错误理解 – jae – 博客园

    一.起因 begin或者START TRANSACTION开始一个事务 rollback事务回滚 commit 事务确认 人们对事务的解释如下:事务由作为一个单独单元的一个或多个 这句话本身没有什么问 ...

  8. python提交事务_事务提交和回滚

    操作方法 begin; -开始事物 commit; - 提交事物  Python 默认是取消自动提交的 rollback; - 回撤操作, 只要操作没有执行 commit 就可以进行回滚操作, 撤回 ...

  9. java jdbc 回滚_java_详解Java的JDBC API中事务的提交和回滚,如果JDBC连接是在自动提交模式 - phpStudy...

    详解Java的JDBC API中事务的提交和回滚 如果JDBC连接是在自动提交模式下,它在默认情况下,那么每个SQL语句都是在其完成时提交到数据库. 这可能是对简单的应用程序,但有三个原因,你可能想关 ...

最新文章

  1. win7下查找端口,使用netstat命令注意事项
  2. 【全球发布】乘云而上的阿里云MVP
  3. ORACLE wallet实现无需输入用户名与密码登陆数据库
  4. 卸载源码安装mysql_CentOS7下源码安装MySQL5.7.6+
  5. VS工作笔记-C++在release模式下可以进行调试
  6. 关于 Oracle 存储双活配置和实战
  7. Python批量修改Excel文件格式:加粗、颜色交替、渐变背景色填充
  8. 样本方差的期望_如何理解方差和偏差
  9. 在线短视频缩略图剪切工具
  10. 使用Idea部署SSM项目后,访问路径为url:8080/项目名_war_exploded的解决方案
  11. 2021 第十二届蓝桥杯大赛软件赛省赛(第二场),C/C++大学B组题解
  12. httplib模块,测试cdn节点文件同步
  13. I/O接口标准(1):LVTTL、LVCMOS、SSTL、HSTL
  14. OS X中的bundle
  15. “开闭原则”实现图书售卖简单实现
  16. JAVA练习——集合练习题(HashSet,TreeSet)产生随机数不能重复,去掉重复元素,将集合中重复元素去掉,字符串倒序输出,倒序输出整数,倒序排列对象
  17. linux基础知识复习学习笔记
  18. WEB 主机安全防护(Fail2ban + firewalld)_防止渗透猜解
  19. signal信号的基础知识
  20. 微型机器人革命:微若尘埃 智比爬虫

热门文章

  1. primefaces教程_Primefaces,带有JPA的Spring 4(Hibernate 4 / EclipseLink)示例教程
  2. junit 重复测试多个类_JUnit重复测试– @RepeatedTest
  3. 开课吧课堂:什么是HashSet类
  4. Java基础篇:带自变量的构造函数
  5. ML————朴素贝叶斯原理和SKlearn相关库
  6. Angular CLI 常用命令
  7. CentOS7中搭建cobbler自动装机服务
  8. Python3 学习
  9. addEventListener和attachEvent二者绑定的执行函数中的this不相同【转载】
  10. Android 之 下拉框(Spinner)的使用