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

Apakah pemicu basis data aman untuk batasan integritas tabel silang?

Jawabannya adalah pemicu tidak aman .

Ternyata pemicunya benar-benar tidak melihat perubahan tanpa komitmen yang dilakukan di transaksi lain dan lolos tanpa kesalahan. Hal ini dapat ditunjukkan seperti ini

Transaksi 1

START TRANSACTION;
INSERT INTO plays_in (BetID, PlayerID) VALUES (1,1); -- query A

Transaksi 2:

START TRANSACTION;
INSERT INTO plays_in (BetID, PlayerID) VALUES (1,2); -- query B; in conflict with A, but passses

Kedua transaksi:

COMMIT;

Sekarang plays_in akan berisi kedua catatan yang disisipkan meskipun jika A dan B dieksekusi dalam satu transaksi, pemicunya akan menimbulkan kesalahan.

Seluruh contoh sumber dapat diperoleh di sini



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hubungkan Java ke database MySQL

  2. tabel ditentukan dua kali baik sebagai target untuk INSERT dan sebagai sumber data yang terpisah

  3. Mendapatkan baris sebelum dan sesudah kueri

  4. Sequelize — gunakan stempel waktu UNIX untuk bidang DATE

  5. Memperbarui beberapa kolom tabel MySQL menggunakan array dengan PDO