13518219792

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

创新互联MYSQL教程MySQL事务

MySQL 事务

MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你既需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务!

创新互联公司是一家专注于网站制作、网站设计与策划设计,沧县网站建设哪家好?创新互联公司做网站,专注于网站建设十余年,网设计领域的专业建站公司;建站业务涵盖:沧县等地区。沧县做网站价格咨询:18982081108

一般来说,事务是必须满足4个条件(ACID)::原子性(Atomicity,或称不可分割性)、一致性(Consistency)、隔离性(Isolation,又称独立性)、持久性(Durability)。

在 MySQL 命令行的默认设置下,事务都是自动提交的,即执行 SQL 语句后就会马上执行 COMMIT 操作。因此要显式地开启一个事务务须使用命令 BEGIN 或 START TRANSACTION,或者执行命令 SET AUTOCOMMIT=0,用来禁止使用当前会话的自动提交。

事务控制语句:

MYSQL 事务处理主要有两种方法:

1、用 BEGIN, ROLLBACK, COMMIT来实现

2、直接用 SET 来改变 MySQL 的自动提交模式:

事务测试

mysql
>
use

RUNOOB
;
Database

changed

mysql
>
CREATE

TABLE

runoob_transaction_test
(

id

int
(
5
)
)

engine
=
innodb
;
# 创建数据表

Query

OK
,
0

rows

affected

(
0.04

sec
)

mysql
>
select
*
from

runoob_transaction_test
;
Empty

set

(
0.01

sec
)

mysql
>
begin
;
# 开始事务

Query

OK
,
0

rows

affected

(
0.00

sec
)

mysql
>
insert

into

runoob_transaction_test

value
(
5
)
;
Query

OK
,
1

rows

affected

(
0.01

sec
)

mysql
>
insert

into

runoob_transaction_test

value
(
6
)
;
Query

OK
,
1

rows

affected

(
0.00

sec
)

mysql
>
commit
;
# 提交事务

Query

OK
,
0

rows

affected

(
0.01

sec
)

mysql
>
select
*
from

runoob_transaction_test
; +------+ |
id
| +------+ |
5
| |
6
| +------+
2

rows

in

set

(
0.01

sec
)

mysql
>
begin
;
# 开始事务

Query

OK
,
0

rows

affected

(
0.00

sec
)

mysql
>
insert

into

runoob_transaction_test

values
(
7
)
;
Query

OK
,
1

rows

affected

(
0.00

sec
)

mysql
>
rollback
;
# 回滚

Query

OK
,
0

rows

affected

(
0.00

sec
)

mysql
>
select
*
from

runoob_transaction_test
;
# 因为回滚所以数据没有插入
+------+ |
id
| +------+ |
5
| |
6
| +------+
2

rows

in

set

(
0.01

sec
)

mysql
>

PHP中使用事务实例

MySQL ORDER BY 测试:


$dbhost
=
'
localhost
'
;
//
mysql服务器主机地址


$dbuser
=
'
root
'
;
//
mysql用户名


$dbpass
=
'
123456
'
;
//
mysql用户名密码


$conn
=
mysqli_connect
(
$dbhost
,
$dbuser
,
$dbpass
)
;
if
(
!
$conn

)

{

die
(
'
连接失败:
'
.
mysqli_error
(
$conn
)
)
;
}

//
设置编码,防止中文乱码


mysqli_query
(
$conn
,
"
set names utf8
"
)
;
mysqli_select_db
(

$conn
,
'
RUNOOB
'

)
;
mysqli_query
(
$conn
,
"
SET AUTOCOMMIT=0
"
)
;
//
设置为不自动提交,因为MYSQL默认立即执行


mysqli_begin_transaction
(
$conn
)
;
//
开始事务定义


if
(
!
mysqli_query
(
$conn
,
"
insert into runoob_transaction_test (id) values(8)
"
)
)

{

mysqli_query
(
$conn
,
"
ROLLBACK
"
)
;
//
判断当执行失败时回滚


}

if
(
!
mysqli_query
(
$conn
,
"
insert into runoob_transaction_test (id) values(9)
"
)
)

{

mysqli_query
(
$conn
,
"
ROLLBACK
"
)
;
//
判断执行失败时回滚


}

mysqli_commit
(
$conn
)
;
//
执行事务


mysqli_close
(
$conn
)
;
?>


本文题目:创新互联MYSQL教程MySQL事务
文章出自:http://cdbrznjsb.com/article/dpjjhhp.html

其他资讯

让你的专属顾问为你服务