mySQL - mysqli kullanarak bir satır düzeyinde kilit Uygula

2 Cevap php

PHP'nin mysqli kullanarak nasıl bir satır düzeyinde kilit uygulamak mı?

Satır düzeyinde kilit sağ kriterlere uyan şu anda mevcut satırları düzenlerken kimseyi durdurmak? ama sizin kriterlerinize uyan bir satır ekleyerek bir kullanıcı durdurabilirim?

Teşekkürler

2 Cevap

Eğer düzenleme belirli bir satır kilit bir SELECT sorgusu sonunda FOR UPDATE kullanmak istiyorsanız. Bu işlem satır kilitler ve güncellenmesi diğer kullanıcıların engeller. Bu sadece InnoDB gibi işlem depolama motorları çalışır.

sorularınıza cevap, evet, satır düzeyinde kilit "sizin kriterlerinize uygun şu anda mevcut satırları düzenleyerek herkesi durdurun". daha spesifik olarak, INSERT (bir işlem içinde) ise, UPDATE ya da bir satır DELETE, bu satır sizin işleminizi yürütme kadar başkası tarafından düzenlemeye karşı kilitlenir. Eğer FOR UPDATE kullanarak bir satır seçerseniz o zaman da satır kilitler.

Ancak, bu "senin kriterlere uyan bir satır ekleyerek bir kullanıcı durdurmak" değil.

Size ulaşmak için çalışıyoruz nedir? InnoDB motor kullandığı row level locking ama bu otomatik bir iç MySQL süreçtir.