Rumah  >  Artikel  >  pangkalan data  >  Bolehkah Pemeriksaan Integriti Rujukan Ditangguhkan Sehingga Komit dalam MySQL?

Bolehkah Pemeriksaan Integriti Rujukan Ditangguhkan Sehingga Komit dalam MySQL?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-09 20:28:02305semak imbas

Can Referential Integrity Checks Be Deferred Until Commit in MySQL?

Bolehkah Semakan Integriti Rujukan Ditunda Sehingga Komit dalam MySQL?

Dalam MySQL, semakan integriti rujukan dilakukan serta-merta, tidak ditangguhkan sehingga komit transaksi . Had ini, seperti yang diserlahkan dalam dokumentasi MySQL, menghalang operasi tertentu, seperti memadam rekod yang merujuk kepada dirinya sendiri menggunakan kunci asing.

Persoalan untuk menangguhkan semakan integriti rujukan telah dibangkitkan sebelum ini, seperti yang dilihat dalam merujuk soalan PoEAA. Masalah timbul apabila memasukkan data ke dalam beberapa jadual berkaitan dalam satu transaksi. Ralat kekangan boleh berlaku apabila cuba memasukkan ke dalam jadual gabungan disebabkan oleh semakan integriti rujukan segera.

Mengikut standard SQL, semakan kekangan harus ditangguhkan. Walau bagaimanapun, InnoDB, enjin storan lalai dalam MySQL, pada masa ini menguatkuasakannya baris demi baris semasa penyataan SQL. Ini bermakna ia menetapkan kunci peringkat baris dikongsi pada rekod rujukan atau induk, menghalang transaksi daripada diteruskan.

Oleh itu, dalam MySQL dengan InnoDB sebagai enjin storan, menangguhkan semakan integriti rujukan sehingga komit tidak dapat dilakukan pada masa ini. Had ini menimbulkan cabaran untuk operasi pangkalan data tertentu dan memerlukan pertimbangan yang teliti semasa mereka bentuk skema pangkalan data.

Atas ialah kandungan terperinci Bolehkah Pemeriksaan Integriti Rujukan Ditangguhkan Sehingga Komit dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn