php-14
来源:互联网 发布:三星网络光端机 编辑:程序博客网 时间:2024/05/22 12:55
MySQL 事务
MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在新闻系统中,你删除一个分类,也要删除和该分类相关的信息,如新闻,评论等等,如果其中一个语句出错,那么数据就不完整了,这些数据库操作语句就看成一个整体,必须全部成功,这样就构成一个事务!
1、在MySQL中只有使用了Innodb数据库引擎的数据表才支持事务
2、事务处理可以用来维护数据库的完整性,保证成批的SQL语句要么全部执行,要么全部不执行
3、事务用来管理insert,update,delete语句
一般来说,事务是必须满足4个条件(ACID): Atomicity(原子性)、Consistency(稳定性)、Isolation(隔离性)、Durability(可靠性)
1、事务的原子性:一组事务,要么成功;要么撤回。
2、稳定性:有非法数据,事务撤回。
3、隔离性:事务独立运行。一个事务处理后的结果,影响了其他事务,那么其他事务会撤回。事务的100%隔离,需要牺牲速度。
4、可靠性:软、硬件崩溃后,InnoDB数据表驱动会利用日志文件重构修改。但可靠性和高速度不可兼得。
开启事务关键字
begin
#数据库操作语句...
如果有一条操作语句失败,撤回之前的数据库操作
ROLLBACK
sql操作都成功,提交事务,保存数据
COMMIT
案例:创建test数据库,user表(id,username),表类型InnoDB,编码utf8
<?php
$handler = @mysql_connect("localhost", "root", "");
mysql_select_db("test");
mysql_query("SET AUTOCOMMIT=0"); //设置为不自动提交,因为MYSQL默认立即执行
mysql_query("BEGIN"); //开始事务定义
if (!mysql_query("insert into user (username) values('zhangsan')")) {
mysql_query("ROLLBACK"); //判断当执行失败时回滚
echo 1;
}
if (!mysql_query("insert into user (username) values('lisi')")) {
mysql_query("ROLLBACK"); //判断执行失败回滚
echo 2;
}
mysql_query("COMMIT"); //执行事务
echo 3;
mysql_close($handler);
?>
MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在新闻系统中,你删除一个分类,也要删除和该分类相关的信息,如新闻,评论等等,如果其中一个语句出错,那么数据就不完整了,这些数据库操作语句就看成一个整体,必须全部成功,这样就构成一个事务!
1、在MySQL中只有使用了Innodb数据库引擎的数据表才支持事务
2、事务处理可以用来维护数据库的完整性,保证成批的SQL语句要么全部执行,要么全部不执行
3、事务用来管理insert,update,delete语句
一般来说,事务是必须满足4个条件(ACID): Atomicity(原子性)、Consistency(稳定性)、Isolation(隔离性)、Durability(可靠性)
1、事务的原子性:一组事务,要么成功;要么撤回。
2、稳定性:有非法数据,事务撤回。
3、隔离性:事务独立运行。一个事务处理后的结果,影响了其他事务,那么其他事务会撤回。事务的100%隔离,需要牺牲速度。
4、可靠性:软、硬件崩溃后,InnoDB数据表驱动会利用日志文件重构修改。但可靠性和高速度不可兼得。
开启事务关键字
begin
#数据库操作语句...
如果有一条操作语句失败,撤回之前的数据库操作
ROLLBACK
sql操作都成功,提交事务,保存数据
COMMIT
案例:创建test数据库,user表(id,username),表类型InnoDB,编码utf8
<?php
$handler = @mysql_connect("localhost", "root", "");
mysql_select_db("test");
mysql_query("SET AUTOCOMMIT=0"); //设置为不自动提交,因为MYSQL默认立即执行
mysql_query("BEGIN"); //开始事务定义
if (!mysql_query("insert into user (username) values('zhangsan')")) {
mysql_query("ROLLBACK"); //判断当执行失败时回滚
echo 1;
}
if (!mysql_query("insert into user (username) values('lisi')")) {
mysql_query("ROLLBACK"); //判断执行失败回滚
echo 2;
}
mysql_query("COMMIT"); //执行事务
echo 3;
mysql_close($handler);
?>
阅读全文
0 0
- php-14
- PHP学习笔记【14】--php类
- PHP Knowledge 14
- PHP课程笔记14
- PHP学习笔记 14
- PHP
- PHP
- php
- php
- PHP
- PHP
- php
- php
- php
- PHP
- php
- php
- php
- Socket中listen/accept函数的区别
- Android7.0中文文档(API)-- Checkable
- 有用的网站信息
- Android设备获取IMEI唯一识别码
- 浅析 Linux 初始化 init 系统,第 1 部分: sysvinit
- php-14
- 邮票组合
- 关于配置Nginx+uwsgi+django的一些坑
- 学习笔记------SUPER&THIS
- 1.1 Android历史与版本进化
- 基于FEA spk的web日志分析
- POJ 1890 Regetni 笔记
- 编程之美2.14 求数组的子数组之和的最大值
- 树莓派查找IP