天天看點

mysql事務操作代碼_Mysql中事務的使用【mysql】

一,概述

1,作用

主要使用者操作處理量大,複雜度高的資料。要保證sql語句,要麼全執行,要麼全不執行,但它必須要滿足四個條件:原子性,一緻性,隔離性,持久性。

2,方法

事務有兩種處理方法

【用 BEGIN, ROLLBACK, COMMIT來實作】

BEGIN 開始一個事務

ROLLBACK 事務復原

COMMIT 事務确認

【直接用 SET 來改變 MySQL 的自動送出模式】

SET AUTOCOMMIT=0 禁止自動送出

SET AUTOCOMMIT=1 開啟自動送出

二,代碼

1,shell中對mysql的使用

BEGIN ;

insert into user_test value(5);

insert into user_test value(6);

commit;

//首先開始事務,相關的sql語句,然後送出事務執行。這種方式要比單獨兩條插入耗時。

2,php中對mysql的使用

$dbhost = 'localhost:3306';

$dbuser = 'root';

$dbpass = '123456';

$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);

?>