
如果是全局级别,则需要加global,如果是会话级别,则需要加session,如果都没加,默认是session。
全局变量作用域:服务器每次启动将为所有的全局变量赋初始值,修改全局变量针对于所有的会话(连接)有效,但不能跨重启(重启服务器全局变量恢复为默认值)。
会话变量作用域:仅仅针对于当前会话(连接)有效
查询会话事务提交模式:
show session variables like 'autocommit'
查询全局事务提交模式:
show global variables like 'autocommit'
Value的值为ON,表示autocommit开启。OFF表示autocommit关闭。
set global autocommit=0
set SESSION autocommit=0
禁止自动提交
SET AUTOCOMMIT=0
开启自动提交:
SET AUTOCOMMIT=1
查询 正在执行的事务:
SELECT * FROM information_schema.INNODB_TRX
查看正在锁的事务
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS
查看等待锁的事务
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS
结束正在执行的事务:
使用mysql命令杀掉线程:kill 线程id (trx_mysql_thread_id)
手动提交模式:
BEGIN
SQL;
COMMIT
1.普通事务以 begin / start transaction 开始,commit / rollback 结束的事务。或者是带有保存点 savepoint 的事务。
2. 链式事务
一个事务在提交的时候自动将上下文传给下一个事务,也就是说一个事务的提交和下一个事务的开始是原子性的,下一个事务可以看到上一个事务的处理结果。MySQL 的链式事务靠参数 completion_type 控制,并且回滚和提交的语句后面加上 work 关键词。
3. 嵌套事务
有多个 begin / commit / rollback 这样的事务块的事务,并且有父子关系。子事务的提交完成后不会真的提交,而是等到父事务提交才真正的提交。
4. 自治事务
内部事务的提交不随外部事务的影响,一般用作记录内部事务的异常情况。MySQL 不支持自治事务,但是某些场景可以用 MySQL 的插件式引擎来变相实现。
1)创建ui界面 (2)导入头文件 一、自动提交模式 二、手动提交模式 (1)构造函数中的代码 (2) “提交”按钮的槽函数 在ui界面导入一个Table View。 这个控件可以显示表格,在代码中我们通过setHeaderData()函数可以自定义每列的名称。 需要用到以下头文件,QSqlDatabase用于连接数据库,QMessageBox用于d出对话框,QSqlError用于显示数据库的错误信息,QSqlQuery和QSqlTableModel用于 *** 作数据库。 #include <QWidget>#include <QSqlDatabase>#include <QMessageBox>#include <QSqlError>#include <QString>#include <QSqlQuery>#include <QSqlTableModel>在Qt窗口显示的表格中改动数据,然后点击回车,数据库中的表格中的数据就自动更新了。 注意,在这里必须是敲击回车才会进行数据库的更新,如果直接用鼠标切换到其他的地方是不会更新数据库的。 //连接数据库 QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL")db.setHostName("127.0.0.1")db.setUserName("root")db.setPassword("123456")db.setDatabaseName("aaa2")if(db.open()==false){ QMessageBox::warning(this,"waring",db.lastError().text())} //实例化model model = new QSqlTableModel(this)//将模型设置到视图 ui->tableView->setModel(model)//给model设置数据表,前提条件是数据库已经打开了 model->setTable("student")欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)