精华内容
下载资源
问答
  • Oracle数据库commit和rollback命令

    千次阅读 2014-05-10 18:08:06
    一个数据库事务起始于一个SQL语句,中止于以下4种事件之一: COMMIT或ROLLBACK语句 ...COMMIT 结束当前事务,并将所有数据变更提交数据库生效  SAVEPOINT name 在当前事务内部创建一个保存点  ROLLBACK 

    一个数据库事务起始于一个SQL语句,中止于以下4种事件之一:

    COMMIT或ROLLBACK语句
    DDL/DCL隐式提交
    用户退出时自动提交
    系统强行关闭时取消事务
    事务结束后,下一条SQL语句将开始一个新的事务。

    语句 功能 
    COMMIT 结束当前事务,并将所有数据变更提交数据库生效 
    SAVEPOINT  name 在当前事务内部创建一个保存点 
    ROLLBACK  [TO  SAVEPOINT  name] ROLLBACK指令结束当前事务,并取消所有数据变更。ROLLBACK  TO  SAVEPOINT  name放弃该保存点,并取消所有在保存点之后的数据变更

    隐式事务提交:
    A.一个事务在下列情况下会被自动提交
    DDL语句
    DCL语句
    用户正常退出数据库,而缺少显式的COMMIT或者ROLLBACK。


    B.一个事务在下列情况下会被自动回退
    用户异常退出数据库
    系统强行关闭

    C.数据在COMMIT/ROLLBACK前的状态:
    事务中所有数据变更都会被临时存放在数据库的缓冲池中,直到事务被提交或者回退。因而事务中早先的状态是可以被恢复的。
    用户可以通过SELECT语句查询自己发起事务的数据变更,即使事务未被提交。但不能看到他人发起事务中未被提交的数据。
    用户发起事务中的变更数据将被数据库系统锁定。除该用户外,其他用户不能对锁定的数据进行变更操作,直到锁定的数据被提交或回退。

    D.数据在COMMIT后的状态:
    数据变更在数据库中正式生效
    数据不可被还原
    所有用户可以看到变更数据
    数据锁将被释放,一度被锁定的数据重新可以被所有用户修改
    所有的保存点(savepoint)都被清除

    E.数据在ROLLBACK后的状态:
    所有数据变更都取消,数据状态恢复到事务开始前
    数据锁将被释放,一度被锁定的数据重新可以被所有用户修改

    F.回退到一个保存点:
    使用SAVEPOINT语句创建一个保存点。如果保存点名称已经存在,则新的保存点将覆盖旧的保存点。
    使用ROLLBACK  TO  SAVEPOINT语句回退到已有保存点状态

    总结一下:
    1.没有提交(commit)的数据删除后无法rollback
    2.提交(commit)了的数据删除后可以使用rollback恢复
    3.删除数据后提交(commit)则无法使用rollback恢复

    以上只是在用到的过程中,就随便搜了一点分享给大家,以后有更多资料了,再接着共享, 对了,还有一点,就是使用delete命令后没有commit,在程序里实现插入或者其他操作的时候会一直处在正在执行的状态,但是commit后就不会出现了~

    展开全文
  • Mysql 中不commit也可以改变数据库吧,那么写不写commit命令有什么区别呢? 15 主要指(INSERT / DELETE / UPDATE / SELECT ),本人初学者,谢谢大家的指点。应该是写好还是不写好。 Andy666andy | 浏览 ...

    Mysql 中不commit也可以改变数据库吧,那么写不写commit命令有什么区别呢? 15

    主要指(INSERT / DELETE / UPDATE / SELECT ),本人初学者,谢谢大家的指点。应该是写好还是不写好。
    Andy666andy | 浏览 14176 次
    我有更好的答案
    推荐于2017-08-31 01:36:37 最佳答案
    这个要看你用什么“存储引擎”
    如果是不支持事务的引擎,如myisam,则是否commit都没有效的。

    如果是支持事务的引擎,如innodb,则有系统参数设置是否自动commit,查看参数如下:
    mysql> show variables like '%autocommit%';

    其他回答

    这个要看你用什么“存储引擎”
    如果是不支持事务的引擎,如myisam,则是否commit都没有效的。

    如果是支持事务的引擎,如innodb,则有系统参数设置是否自动commit,查看参数如下:
    mysql> show variables like '%autocommit%';
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | autocommit | ON |
    +---------------+-------+
    1 row in set (0.00 sec)

    mysql>

    显示结果为on表示事务自动提交,也即不用手工去commit。
    当然,你可以设置其为OFF,然后自己手工去commit。
     本回答被提问者采纳
    vinson_shen  | 推荐于2016-11-24 05:28:20
    评论(4) 
    27 6
    话说mysql在进行数据操作语言(dml)(即insert,delete等)的时候是默认自动commit的
    optilixue  | 发布于2010-08-04 18:03
    评论 
    3 1
    使用了commit后你不可以回退,它会永久改变你的数据,而不使用只是临时改变,它把改变后的内容备份了一份在日志中,你可以rollback还原回来,看情况而用了。
    924922279  | 发布于2010-08-02 22:41
    评论(1) 
    2 0
    可以
    johnny20102012  | 发布于2010-08-03 16:29
    评论 
    0 0
    那 MYSQL“事务”的机制如何体现?
    caiqiupeng  | 发布于2010-08-02 22:31

    展开全文
  • 在这里我只简单介绍一下这两个命令,只是我在使用的过程中用到了,所以就在这里提一提,如果大家对这个感兴趣的话,可以去搜索一些更多的介绍,欢迎分享出来~~ 一个数据库事务起始于一个SQL语句,中止于以下4种事件...

    在这里我只简单介绍一下这两个命令,只是我在使用的过程中用到了,所以就在这里提一提,如果大家对这个感兴趣的话,可以去搜索一些更多的介绍,欢迎分享出来~~

    一个数据库事务起始于一个SQL语句,中止于以下4种事件之一:
    COMMIT或ROLLBACK语句
    DDL/DCL隐式提交
    用户退出时自动提交
    系统强行关闭时取消事务
    事务结束后,下一条SQL语句将开始一个新的事务。

    语句 功能 
    COMMIT 结束当前事务,并将所有数据变更提交数据库生效 
    SAVEPOINT  name 在当前事务内部创建一个保存点 
    ROLLBACK  [TO  SAVEPOINT  name] ROLLBACK指令结束当前事务,并取消所有数据变更。ROLLBACK  TO  SAVEPOINT  name放弃该保存点,并取消所有在保存点之后的数据变更

    隐式事务提交:
    一个事务在下列情况下会被自动提交
    DDL语句
    DCL语句
    用户正常退出数据库,而缺少显式的COMMIT或者ROLLBACK。
    一个事务在下列情况下会被自动回退
    用户异常退出数据库
    系统强行关闭
    数据在COMMIT/ROLLBACK前的状态:
    事务中所有数据变更都会被临时存放在数据库的缓冲池中,直到事务被提交或者回退。因而事务中早先的状态是可以被恢复的。
    用户可以通过SELECT语句查询自己发起事务的数据变更,即使事务未被提交。但不能看到他人发起事务中未被提交的数据。
    用户发起事务中的变更数据将被数据库系统锁定。除该用户外,其他用户不能对锁定的数据进行变更操作,直到锁定的数据被提交或回退。
    数据在COMMIT后的状态:
    数据变更在数据库中正式生效
    数据不可被还原
    所有用户可以看到变更数据
    数据锁将被释放,一度被锁定的数据重新可以被所有用户修改
    所有的保存点(savepoint)都被清除
    数据在ROLLBACK后的状态:
    所有数据变更都取消,数据状态恢复到事务开始前
    数据锁将被释放,一度被锁定的数据重新可以被所有用户修改
    回退到一个保存点:
    使用SAVEPOINT语句创建一个保存点。如果保存点名称已经存在,则新的保存点将覆盖旧的保存点。
    使用ROLLBACK  TO  SAVEPOINT语句回退到已有保存点状态

    总结一下:
    1.没有提交(commit)的数据删除后无法rollback
    2.提交(commit)了的数据删除后可以使用rollback恢复
    3.删除数据后提交(commit)则无法使用rollback恢复

    以上只是在用到的过程中,就随便搜了一点分享给大家,以后有更多资料了,再接着共享, 对了,还有一点,就是使用delete命令后没有commit,在程序里实现插入或者其他操作的时候会一直处在正在执行的状态,但是commit后就不会出现了~

    展开全文
  • flask数据库操作命令

    2018-08-10 16:52:00
    数据库增加,删除,修改操作: 增加: user = User(name=’laowang’) db.session.add(user) db.session.commit() 修改: user.name = ‘xiaohua’ db.session.commit() 删除: db.session.delete(user) db....

    数据库增加,删除,修改操作:
    增加:
    user = User(name=’laowang’)
    db.session.add(user)
    db.session.commit()

    修改:
    user.name = ‘xiaohua’
    db.session.commit()

    删除:
    db.session.delete(user)
    db.session.commit()

    查询所有用户数据
    User.query.all()

    查询有多少个用户
    User.query.count()

    查询第1个用户
    User.query.all()[0]

    查询id为4的用户[3种方式]
    User.query.get(4)
    User.query.filter_by(id = 4).first()
    User.query.filter(User.id == 4).first()

    查询名字结尾字符为g的所有数据[开始/包含]
    User.query.filter(User.name.endwith(‘g’)).all()
    User.query.filter(User.name.startswith(‘g’)).all()
    User.query.filter(User.name.contains(‘g’)).all()

    查询名字不等于wang的所有数据[2种方式]
    查询名字和邮箱都以 li 开头的所有数据[2种方式]
    User.query.filter(User.name.startswith(‘li’),User.email.startswith(‘li’)).all()
    User.query.filter(and_(User.name.startswith(‘li’),User.email.startswith(‘li’))).all()

    查询password是 123456 或者 email.com 结尾的所有数据
    User.query.filter(or_(User.password == ‘123456’,User.email.endswith(‘.com’))).all()

    查询id为 [1, 3, 5, 7, 9] 的用户列表
    User.query.filter(User.id.in_([1,3,5,7,9])).all()

    查询name为liu的角色数据
    user = User.query.filter(User.name == ‘liu’).first()
    role = Role.query.filter(Role.id == user.role_id).first()

    查询所有用户数据,并以邮箱排序
    User.query.order_by(User.email).all()
    User.query.order_by(User.email.desc()).all()

    每页3个,查询第2页的数据
    paginate = User.query.paginate(page, per_page,Error_out)
    paginate = User.query.paginate(2,3,False)
    page: 哪一个页
    per_page: 每页多少条数据
    Error_out: False 查不到不报错
    pages: 共有多少页
    items: 当前页数的所有对象

    展开全文
  • 数据库常用命令

    2013-01-22 15:48:36
    SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) ...DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1、连接数据库 Mysql–h服务器地址–u用户名–p密码 ...
  • DDL create 创建数据库和表等对象 drop 删除数据库和表等对象 ...commit 确认对数据库中的数据进行变更 rollback 取消数据库中数据进行的变更 grant 赋予用户操作权限 revoke 取消用户操作权限...
  • mysql 数据库常用命令

    2012-10-12 13:37:00
    事务: ...source 命令: 可以执行.sql 文件中的sql 语句,恢复数据时,可用该命令。  eg: source /temp/a.sql : 执行a.sql中的sql语句。 导出库: 在命令行中执行: mysqldump -uroot -...
  • COMMIT命令用于把事务所做的修改保存到数据库,它把上一个COMMIT或ROLLBACK命令之后的全部事务都保存到数据库。 这个命令的语法是: commit [work]; 关键字COMMIT是语法中惟一不可缺少的部分,其后是...
  • 在这里我只简单介绍一下这两个命令,只是我在使用的过程中用到了,所以就在这里提一提,如果大家对这个感兴趣的话,可以去搜索一些更多的介绍,欢迎分享出来~~一个数据库事务起始于一个SQL语句,中止于以下4种事件之...
  • linux数据库命令

    2014-12-31 10:29:43
    查看数据库执行的sql /usr/sbin/tcpdump -i eth0 -s 0 -l -w - dst port 3306 | strings | egrep -i 'SELECT|UPDATE|DELETE|INSERT|SET|COMMIT|ROLLBACK|CREATE|DROP|ALTER|CALL' 系统Debug分析篇1.调试命令 strace...
  • Oracle数据库命令

    2020-09-10 00:37:33
    oracle中的事务需要手动commit提交 select sysdate from dual; 显示系统时间 建表 create table student( stuno number(4), sname varchar2(20), incard varchar2(18), age number(3), sex char...
  • 数据库的常用命令

    2020-10-13 21:11:21
    TPL:事务处理语言,对事务进行处理,包括begin transaction、commit、rollback DCL:数据控制语言,进行授权与权限回收,如grant、revoke DDL:数据定义语言,进行数据库、表的管理等,如create、drop CCL:指针...
  • mysql数据库基础操作命令大全

    千次阅读 多人点赞 2020-08-24 19:33:33
    3.数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 创建数据库 create database my-database 删除数据库 drop database my-database 创建新表 create table my_table(col1 type1 [not null] [primary key],c
  • DM数据库基本操作命令

    千次阅读 2020-08-25 18:16:32
    查询语言分类 DDL 数据结构定义语言 如cre ate table, alter table , create index, … ...如start transaction, commit, rollback, set transaction level read commited 基本SQL命令 每条SQL命令必须以;
  • Oracle数据库命令介绍

    2011-05-19 15:52:12
    SET AUTO[COMMIT] {ON|OFF|IMM[EDIATE]| n}   2) .在用 start 命令执行一个 sql 脚本时,是否显示脚本中正在执行的 SQL 语句 SQL> SET ECHO {ON|OFF}   3). 是否显示...
  • 分类: ... DDL语句 数据库定义语言 create drop alter TCL语句 事务控制语言 commit rollback 一些命令以及方法 net start mysql ----- //需以管理员身份运行Cmd启动 mysql -u root -p ----...
  • 3.数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 创建数据库 create database my-database 1 删除数据库 drop database my-database 1 创建新表 create table my_table(col1 type1 [not null] [primary key],c
  • 下列语句部分是Mssql语句,不可以在access中使用。 SQL分类: DDL—数据定义语言(CREATE...DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1、说明:创建数据库 CREATE DATABASE data...
  • 数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 创建数据库 create database my-database 1 删除数据库 drop database my-database 1 创建新表 create table my_table(col1 type1 [not null] [pri
  • 需要在添加,修改,删除等SQL命令执行完之后,再执行一条语句 commit; 意思就是让前面的数据操作立即生效
  • 数据库(SQL)操作命令大全,下列语句部分是Mssql语句,不可以在access中使用。 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据...
  • 新手初学者很有用, DDL(Data definition language 数据定义语言),用于建表或删表操作,以及对表约束进行修改 ... transaction ,事务控制语言,由DML语句组成的,commit; ,rollback; select 查询语句
  • 注意:SQL语句分为四种类型,分别是DQL(数据查询语言),DML(数据操作语言),DDL(数据定义语言),TCL(事务控制语言),DCL(数据控制语言) 1.DQL(数据查询语言)(凡是带...4.TCL(事务控制语言)(包括commit, rol.
  • git commit 命令使用,及其底层命令分析 工具包: 状态查看 git status 查看 Git 数据库 中的 Git 对象 find .git/objects/ -type f 查看 .git 目录结构【主要是 index 暂存区文件有无】 ll .git 文章的...
  • 补充:昨晚发现是插入的数据库没反应,也就是problemstate_ta 这个表,无法插入数据,命令没有写错,在Navicat中窗口模式手动插入数据,数据的自动增长id显示+1,插入数据也没有报错,但是刷新表,数据没了,求解
  • Mac 技术篇-Oracle数据库连接工具SQL Developer启用、关闭自动提交事务,设置自动commit。 oracle 执行每条 sql 语句都要 commit 提交后才会生效,有的工具启用了自动 commit,所有直接执行语句就可以了,但是 ...
  • 数据库增加,删除,修改操作: 增加: user = User(name='laowang') db.session.add(user) db.session.commit() 修改: user.name = 'xiaohua' db.session.commit() 删除: db.session.delete(user) db.session.commit()...
  • 《python数据处理》6.7.3笔记:sqlite3数据库的创建命令一、创建不成功的源码 一、创建不成功的源码 源码: sqlite3 data_wrangling.db 报错: 'sqlite3' 不是内部或外部命令,也不是可运行的程序或批处理文件。 ...
  • 数据库基础

    2020-06-10 20:26:42
    DDL,DCL和TCL删除数据的方式约束存储过程触发器表的连接分布式数据库和集中式数据库数据库分片、分区、分表、分库存储引擎常用命令常用操作数据库命令修改表的命令对数据的操作高级查询连接查询联合查询子查询 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 818
精华内容 327
关键字:

数据库commit命令