Oracle数据库事务回滚和提交,数据库 事务提交和回滚
事务 - (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),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。
Oracle数据库事务回滚和提交,数据库 事务提交和回滚相关推荐
- java 对线程进行事务控制_Java 多线程事务回滚 ——多线程插入数据库时事务控制...
背景 日常项目中,经常会出现一个场景,同时批量插入数据库数据,由于逻辑复杂或者其它原因,我们无法使用sql进行批量插入.串行效率低,耗时长,为了提高效率,这个时候我们首先想到多线程并发插入,但是如何控 ...
- mysql 事务回滚语句_数据库事务回滚语句-sql事务回滚语句是-用于事务回滚的sql语句...
sql 回滚语句 这种情况的数据恢复只能利用事务日志的备份来进行,所以如果你的SQL没有进行相应的全库备份 或不能备份日志(truncate log on checkpoint选项为1),那幺就无法进 ...
- mysql事务管理及spring声明式事务中主动异常抛出使数据库回滚
mysql事务管理及spring声明式事务中主动异常抛出使数据库回滚 参考文章: (1)mysql事务管理及spring声明式事务中主动异常抛出使数据库回滚 (2)https://www.cnblog ...
- oracle提交数据按键,Oracle PLSQL - 仅提交数据库链接(Oracle PLSQL - Commit only database link)...
Oracle PLSQL - 仅提交数据库链接(Oracle PLSQL - Commit only database link) 有没有办法只通过数据库链接而不是当前会话的数据提交在表上插入/更新的 ...
- 数据库基础知识点-事务隔离级别区分(读未提交、读已提交和可重复读)
事务隔离级别 数据库事务隔离级别分4个: 读未提交-Read uncommitted 读已提交-Read committed 可重复读-Repeatable read–MySQL 序列化-Serial ...
- mongodb mysql 事务_MongoDB数据库两阶段提交实现事务的方法详解 _ 蚂蚁视界
本文实例讲述了MongoDB数据库两阶段提交实现事务的办法.分享给年夜家供年夜家参考,详细如下: MongoDB数据库中操作单个文档老是原子性的,然而,涉及多个文档的操作,通常被作为一个"事 ...
- mysql事务回滚是什么意思_Mysql事务提交及事务回滚是什么意思
本篇文章主要给大家介绍mysql事务提交及事务回滚的相关知识. 事务可以说是一段sql 语句的批处理,但是这个批处理是一个atom(原子) ,不可分割,要么都提交执行,要么回滚(rollback)都不 ...
- 事务、事务提交、事务回滚
事务 事务(Transaction),一般是指要做的或所做的事情.在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit).事务通常由高级数据库操纵语言或编程语言(如SQL,C ...
- Spring的AOP和IOC是什么?使用场景有哪些?Spring事务与数据库事务,传播行为,数据库隔离级别
Spring的AOP和IOC是什么?使用场景有哪些?Spring事务与数据库事务,传播行为,数据库隔离级别 AOP:面向切面编程. 即在一个功能模块中新增其他功能,比方说你要下楼取个快递,你同事对你说 ...
最新文章
- 信息熵及其相关概念--数学
- 跨站请求伪造CSRF
- 编程之美之控制cpu线
- LQ训练营(C++)学习笔记_枚举算法
- 设计模式——Iterator模式实现研究
- Tomcat原理详解
- Mac安装wget流程及异常解决
- 文件删不掉需要管理员权限?分享解决方法
- 爬取虾米音乐flac高品质下载
- 知网文献nh、caj格式文件转成pdf
- 手把手和你用原生JS写一个循环播放图片轮播
- 一起学英语 - 前言
- 干货|浅谈iOS端短视频SDK技术实现
- CLion输出中文乱码解决方案
- Adobe2022更新,打开photoshop总是提示需要访问钥匙串秘钥怎么解决?
- iPhone彻底删除的照片能恢复吗,2个找回永久删除照片的方法
- 跟风晒CVPR 2023论文
- C语言的语句与程序的基本结构
- 数据处理分析模块 Pandas(3)
- STC89C51——中断系统
热门文章
- html中两个标签上对齐,css将两个元素水平对齐的方法(兼容IE8)
- c语言lnk1168无法打开exe,跪求大佬帮帮看看LINK : fatal error LNK1168: 无法打开 F:\windows程序设计\窗口\......
- 计算机二级土楼ppt是第几套,2019年3月全国计算机二级考试PPT部分操作题真题-无忧ppt...
- mysql -a 参数_mysql参数及解释
- linux中544进程,Linux基础--进程管理及其基本命令
- javascript html dom,javascript 操作 HTML DOM
- html js停止计时,用 js 写的计时器,暂停计时无法生效
- 15年3月c语言试卷,2015年3月二级C语言新增无纸化真题试卷(三)
- 计算机网络应用基础作业二,本科计算机应用基础作业二(全答案)
- 2d的公式_旋转之二 - 三维空间中的旋转:罗德里格旋转公式