MYSQL--事务处理_MySQL
bitsCN.com
MYSQL--事务处理
事务处理在各种管理系统中都有着广泛的应用,比如人员管理系统,很多同步数据库操作大都需要用到事务处理。比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务! www.bitsCN.com
删除的SQL语句
delete from userinfo where ~~~
delete from mail where ~~
delete from article where~~
~~ www.bitsCN.com
如果没有事务处理,在你删除的过程中,假设出错了,只执行了第一句,那么其后果是难以想象的!
但用事务处理。如果删除出错,你只要rollback就可以取消删除操作(其实是只要你没有commit你就没有确实的执行该删除操作)
一般来说,在商务级的应用中,都必须考虑事务处理的!
查看inodb信息
shell> /usr/local/mysql -u root -p
mysql> show variables like "have_%"
系统会提示:
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| have_bdb | YES |
| have_crypt | YES |
| have_innodb | YES |
| have_isam | YES |
| have_raid | YES |
| have_symlink | YES |
| have_openssl | NO |
| have_query_cache | YES |
+------------------+-------+
8 rows in set (0.05 sec)
如果是这样的,那么我们就可以创建一张支持事务处理的表来试试了。
MYSQL的事务处理功能!
作者:Feifengxlq Email:feifengxlq@sohu.com
一直以来我都以为MYSQL不支持事务处理,所以在处理多个数据表的数据时,一直都很麻烦(我是不得不将其写入文本文件,在系统重新加载得时候才写入数据库以防出错)~今天发现MYSQL数据库从4.1就开始支持事务功能,据说5.0将引入存储过程^_^
先简单介绍一下事务吧!事务是DBMS得执行单位。它由有限得数据库操作序列组成得。但不是任意得数据库操作序列都能成为事务。一般来说,事务是必须满足4个条件(ACID)
原子性(Autmic):事务在执行性,要做到“要么不做,要么全做!”,就是说不允许事务部分得执行。即使因为故障而使事务不能完成,在rollback时也要消除对数据库得影响!
一致性(Consistency):事务得操作应该使使数据库从一个一致状态转变倒另一个一致得状态!就拿网上购物来说吧,你只有即让商品出库,又让商品进入顾客得购物篮才能构成事务!
隔离性(Isolation):如果多个事务并发执行,应象各个事务独立执行一样!
持久性(Durability):一个成功执行得事务对数据库得作用是持久得,即使数据库应故障出错,也应该能够恢复!
MYSQL的事务处理主要有两种方法。
1、用begin,rollback,commit来实现
begin 开始一个事务
rollback 事务回滚
commit 事务确认
2、直接用set来改变mysql的自动提交模式
MYSQL默认是自动提交的,也就是你提交一个QUERY,它就
直接执行!我们可以通过
set autocommit=0 禁止自动提交
set autocommit=1 开启自动提交
来实现事务的处理。
但注意当你用 set autocommit=0 的时候,你以后所有的SQL都将
做为事务处理,直到你用commit确认或rollback结束,注意当你结
束这个事务的同时也开启了个新的事务!按第一种方法只将当前的作为一个事务!
个人推荐使用第一种方法!
MYSQL中只有INNODB和BDB类型的数据表才能支持事务处理!
其他的类型是不支持的!(切记!)
下次有空说下MYSQL的数据表的锁定和解锁!
MYSQL5.0 WINXP下测试通过~ ^_^
mysql> use test;
Database changed
mysql> CREATE TABLE `dbtest`(
-> id int(4)
-> ) TYPE=INNODB;
Query OK, 0 rows affected, 1 warning (0.05 sec)
mysql> select * from dbtest
-> ;
Empty set (0.01 sec)
mysql> begin;
Query OK, 0 rows affected (0.00 sec)
mysql> insert into dbtest value(5);
Query OK, 1 row affected (0.00 sec)
mysql> insert into dbtest value(6);
Query OK, 1 row affected (0.00 sec)
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from dbtest;
+------+
| id |
+------+
| 5 |
| 6 |
+------+
2 rows in set (0.00 sec)
mysql> begin;
Query OK, 0 rows affected (0.00 sec)
mysql> insert into dbtest values(7);
Query OK, 1 row affected (0.00 sec)
mysql> rollback;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from dbtest;
+------+
| id |
+------+
| 5 |
| 6 |
+------+
2 rows in set (0.00 sec)
mysql>
*************************************************
[PHP]
function Tran( $sql ) {
$judge = 1;
mysql_query('begin');
foreach ($sql as $v) {
if ( !mysql_query($v) ) {
$judge = 0;
}
}
if ($judge == 0) {
mysql_query('rollback');
return false;
}
elseif ($judge == 1) {
mysql_query('commit');
return true;
}
}
[/PHP]
************************************************
$handler=mysql_connect("localhost","root","");
mysql_select_db("task");
mysql_query("SET AUTOCOMMIT=0");//设置为不自动提交,因为MYSQL默认立即执行
mysql_query("BEGIN");//开始事务定义
if(!mysql_query("insert into trans (id) values('2')"))
{
mysql_query("ROOLBACK");//判断当执行失败时回滚
}
if(!mysql_query("insert into trans (id) values('4')"))
{
mysql_query("ROOLBACK");//判断执行失败回滚
}
mysql_query("COMMIT");//执行事务
mysql_close($handler);
?>
bitsCN.com
Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Cara menulis sistem pengurusan pinjaman dalam talian yang mudah melalui PHP memerlukan contoh kod khusus Pengenalan: Dengan kemunculan era digital, kaedah pengurusan perpustakaan juga telah mengalami perubahan yang besar. Sistem rakaman manual tradisional secara beransur-ansur digantikan oleh sistem pengurusan pinjaman dalam talian. Sistem pengurusan pinjaman dalam talian meningkatkan kecekapan dengan mengautomasikan proses peminjaman dan pemulangan buku. Artikel ini akan memperkenalkan cara menggunakan PHP untuk menulis sistem pengurusan pinjaman dalam talian yang mudah dan memberikan contoh kod khusus. 1. Analisis keperluan sistem sebelum mula menulis sistem pengurusan pinjaman dalam talian

Dengan kemajuan teknologi dan pembangunan sosial, sistem pengurusan harta pintar telah menjadi bahagian yang amat diperlukan dalam pembangunan bandar moden. Dalam proses ini, sistem pengurusan harta pintar berdasarkan bahasa Go telah menarik banyak perhatian kerana kelebihannya seperti kecekapan, kebolehpercayaan dan kelajuan. Artikel ini akan memperkenalkan amalan sistem pengurusan harta pintar pasukan kami menggunakan bahasa Go. 1. Analisis keperluan Pasukan kami terutamanya membangunkan sistem pengurusan hartanah ini untuk syarikat hartanah. Tugas utamanya adalah untuk menghubungkan syarikat pengurusan hartanah dan penduduk untuk memudahkan pengurusan syarikat pengurusan hartanah, dan juga untuk membolehkan penduduk

PHP ialah bahasa pengaturcaraan yang sangat popular, dan CodeIgniter4 ialah rangka kerja PHP yang biasa digunakan. Apabila membangunkan aplikasi web, menggunakan rangka kerja sangat membantu Ia boleh mempercepatkan proses pembangunan, meningkatkan kualiti kod dan mengurangkan kos penyelenggaraan. Artikel ini akan memperkenalkan cara menggunakan rangka kerja CodeIgniter4. Pasang rangka kerja CodeIgniter4 Rangka kerja CodeIgniter4 boleh dimuat turun dari laman web rasmi (https://codeigniter.com/). Bawah

Cara menggunakan PHP untuk melaksanakan operasi pangkalan data dalam persekitaran Linux Dalam aplikasi web moden, pangkalan data adalah komponen penting. PHP ialah bahasa skrip sebelah pelayan yang popular yang boleh berinteraksi dengan pelbagai pangkalan data. Artikel ini akan memperkenalkan cara menggunakan skrip PHP untuk operasi pangkalan data dalam persekitaran Linux dan menyediakan beberapa contoh kod khusus. Langkah 1: Pasang Perisian dan Ketergantungan yang Diperlukan Sebelum memulakan, kita perlu memastikan bahawa PHP dan kebergantungan yang berkaitan dipasang dalam persekitaran Linux. Biasalah

Pagoda Panel ialah perisian panel berkuasa yang boleh membantu kami menggunakan, mengurus dan memantau pelayan dengan cepat, terutamanya perniagaan kecil atau pengguna individu yang sering perlu membina tapak web, pengurusan pangkalan data dan penyelenggaraan pelayan. Di antara tugas-tugas ini, pengurusan pangkalan data MySQL adalah tugas penting dalam banyak kes. Jadi bagaimana untuk menggunakan panel Pagoda untuk pengurusan MySQL? Seterusnya, kami akan memperkenalkannya langkah demi langkah. Langkah 1: Pasang Panel Pagoda Sebelum mula menggunakan Panel Pagoda untuk pengurusan MySQL, anda perlu memasang Panel Pagoda terlebih dahulu.

Analisis prinsip asas sistem pengurusan pangkalan data MySQL MySQL ialah sistem pengurusan pangkalan data hubungan yang biasa digunakan yang menggunakan bahasa pertanyaan berstruktur (SQL) untuk penyimpanan dan pengurusan data. Artikel ini akan memperkenalkan prinsip asas sistem pengurusan pangkalan data MySQL, termasuk penciptaan pangkalan data, reka bentuk jadual data, penambahan data, pemadaman, pengubahsuaian dan operasi lain, dan menyediakan contoh kod khusus. 1. Penciptaan Pangkalan Data Dalam MySQL, anda perlu mencipta contoh pangkalan data untuk menyimpan data. Kod berikut boleh mencipta fail bernama "my

Bagaimana untuk menggunakan C++ untuk menulis sistem pengurusan asrama pelajar yang mudah? Sistem pengurusan asrama pelajar ialah sistem perisian yang boleh menguruskan maklumat asrama pelajar dengan mudah. Menggunakan C++ untuk menulis sistem pengurusan asrama pelajar yang ringkas bukan sahaja boleh menggunakan kemahiran pengaturcaraan, tetapi juga meningkatkan pemahaman dan pemahaman anda tentang proses pengurusan asrama pelajar. Artikel ini akan memperkenalkan cara menggunakan C++ untuk menulis sistem pengurusan asrama pelajar yang mudah. Pertama, kita perlu menentukan maklumat asas asrama pelajar, termasuk nama pelajar, nombor pelajar, jantina, maklumat hubungan, dll. Kita boleh menggunakan struktur

Cara menggunakan MongoDB untuk membangunkan sistem pengurusan backend laman web yang mudah Dengan pembangunan Internet, penggunaan dan pengurusan laman web menjadi semakin penting. Untuk memudahkan pentadbir laman web mengurus kandungan laman web di latar belakang, adalah penting untuk membangunkan sistem pengurusan latar belakang laman web yang mudah dan cekap. Artikel ini akan memperkenalkan cara menggunakan MongoDB untuk membangunkan sistem pengurusan bahagian belakang tapak web yang mudah, dan menunjukkannya melalui contoh kod tertentu. Penyediaan Pertama, kita perlu memastikan bahawa pangkalan data MongoDB telah dipasang dan dikonfigurasikan. khusus
