Latest web development tutorials

transaksi MySQL

operasi pemrosesan transaksi MySQL terutama digunakan untuk besar, kompleksitas tinggi dari data. Sebagai contoh, dalam sistem manajemen personalia, Anda menghapus seseorang, yaitu, Anda perlu menghapus petugas informasi dasar, dan petugas juga menghapus informasi terkait, seperti kotak surat, artikel, dll, sehingga pernyataan operasi database merupakan transaksi !

  • Hanya di mesin database MySQL menggunakan database InnoDB atau meja untuk mendukung transaksi
  • Transaksi dapat digunakan untuk menjaga integritas database untuk memastikan bahwa batch pernyataan SQL baik semua dijalankan atau tidak dijalankan semua
  • manajemen transaksi untuk insert, update, menghapus pernyataan

Umumnya, transaksi harus memenuhi empat kondisi (ACID): Atomicity (Atomicity), Konsistensi (stabilitas), Isolasi (isolasi), Daya Tahan (reliabilitas)

  • 1, transaksi atom: satu set transaksi, atau kesuksesan, atau ditarik.
  • 2. Stabilitas: data ilegal (kendala asing kunci dan sejenisnya), transaksi penarikan.
  • 3. Isolasi: Sebuah transaksi secara independen. Hasil Setelah transaksi, mempengaruhi transaksi lainnya, transaksi lainnya akan ditarik. 100% dari isolasi transaksi, kebutuhan untuk mengorbankan kecepatan.
  • 4. Keandalan: Setelah perangkat lunak dan perangkat keras kecelakaan, InnoDB data tabel-driven Rekonstruksi akan menggunakan modifikasi file log. Kehandalan dan kecepatan tidak bisa memiliki keduanya, pilihan innodb_flush_log_at_trx_commit ketika memutuskan untuk menyimpan log transaksi.

Dalam Mysql konsol menggunakan transaksi untuk beroperasi

1, awal transaksi

start transaction

2, lakukan menyimpan titik

savepoint 保存点名称

3, operasi

4, dapat digulung kembali, Anda bisa mengirimkan, tidak ada masalah, saya serahkan, ada masalah rollback.

PHP digunakan misalnya transaksi

<?php
$handler=mysql_connect("localhost","root","password");
mysql_select_db("task");
mysql_query("SET AUTOCOMMIT=0");//设置为不自动提交,因为MYSQL默认立即执行
mysql_query("BEGIN");//开始事务定义
if(!mysql_query("insert into trans (id) values('2')"))
{
mysql_query("ROLLBACK");//判断当执行失败时回滚
}
if(!mysql_query("insert into trans (id) values('4')"))
{
mysql_query("ROLLBACK");//判断执行失败回滚
}
mysql_query("COMMIT");//执行事务
mysql_close($handler);
?>