Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Kapan saya harus menggunakan transaksi MySQL?

Transaksi digunakan saat Anda memiliki sekelompok kueri yang semuanya bergantung satu sama lain.

Misalnya, bank:

  • Pelanggan bank "John" mentransfer $100 ke rekening "Alice".
  • Untuk contoh ini, ada 2 kueri (saya tidak menampilkan logging atau riwayat transaksi...dll). Anda perlu mengurangi $100 dari saldo John dan menambahkannya ke saldo Alice.
  • Start transaction
  • Dikurangi dari John
    • UPDATE accounts SET balance=balance-100 WHERE account='John'
  • Tambahkan ke Alice
    • UPDATE accounts SET balance=balance+100 WHERE account='Alice'
  • commit

Sebuah transaksi tidak disimpan sampai Anda melakukan itu. Jadi jika ada kesalahan di salah satu kueri, Anda dapat memanggil rollback dan batalkan semua kueri yang telah berjalan sejak transaksi dimulai. Jika karena alasan tertentu permintaan untuk menambahkan $100 ke Alice gagal, Anda dapat mengembalikan dan tidak mengurangi $100 dari John. Ini adalah cara untuk memastikan bahwa Anda dapat membatalkan kueri secara otomatis jika diperlukan.

  • Haruskah saya memulai transaksi ketika saya menjalankan dua atau lebih kueri hapus/perbarui/sisipkan?

    Tergantung pada apa yang dilakukan kueri.

  • Haruskah saya juga memulai transaksi ketika saya hanya memiliki satu permintaan hapus/perbarui/masukkan?

    Tidak perlu kecuali Anda memerlukan cara untuk mengembalikan (membatalkan) kueri seperti Anda ingin melakukan pembaruan dan memvalidasinya sebelum memanggil komit (simpan).

  • Haruskah saya memulai transaksi seperti 10 kali pada satu halaman, atau lebih baik hanya sekali untuk seluruh halaman, atau apakah Anda merekomendasikan maksimal untuk setiap halaman (misalnya 5)?

    Mulailah sebanyak yang Anda butuhkan. Saya ragu Anda memiliki beberapa transaksi per halaman karena kemungkinan besar Anda akan melakukan satu hal pada setiap pemuatan halaman (yaitu mentransfer uang).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana kategori dan subkategori untuk WooCommerce disimpan di DB?

  2. Mac OS X - EnvironmentError:mysql_config tidak ditemukan

  3. Bagaimana cara memutakhirkan wordpress yang dihosting sendiri dan memasang plugin situs langsung ke versi terbaru yang tersedia tanpa menghadapi masalah?

  4. PyMySQL mengembalikan nilai lama/snapshot/tidak menjalankan kembali kueri?

  5. Bagaimana cara saya terhubung ke Database MySQL dengan Python?