Bir işlemin içindeki bir SELECT sorgusu, kendi içinde, UPDATE'lerden ve DELETE'lerden düzgün şekilde korunmaz.
Aşağıdakileri kullanmanız için gerekenler:
Sorun yaşarsanız , işlemin sonunda tablodaki Delete From orders Where id=1
satırlar orders
kilitlerini serbest bıraktığında gerçekleşir. READ UNCOMMITTED
Silme işleminin mantıksal olarak gerçekleşmesi için işlem yalıtım düzeyini kullanarak (bir Geliştirici / Hazırlama Sunucusunda lütfen) deneme yapabilirsiniz, ancak yalnızca taahhütte görünür ve kalıcı olarak kaydedilir.
İkinci işlemde, temel olarak tüm bahisler kapalıdır. Eğer koşarsan
select * From orders Where id=1;
UPDATE orders SET username="John" Where id=1;
koşmak Delete From orders Where id=1
derhal taahhüt eder. MySQL bu ifadeleri yürütme sırasına bağlı olarak, silme satırlarını görecek (veya görmeyecek).
UYARI
MySQL 5.6 şimdi aşağıdakilere sahiptir :
START TRANSACTION READ WRITE;
START TRANSACTION READ ONLY;
YAZI OKU ve SADECE OKU değiştiricileri işlem erişim modunu ayarlar. İşlemde kullanılan tablolarda değişiklik yapılmasına izin verir veya yasaklar. YALNIZCA OKUMA kısıtlaması, işlemin diğer işlemler tarafından görülebilen hem işlemsel hem de işlemsel olmayan tabloları değiştirmesini veya kilitlemesini engeller; işlem yine de geçici tabloları değiştirebilir veya kilitleyebilir. Bu değiştiriciler MySQL 5.6.5 itibariyle mevcuttur.