sqlite3 hakkında garip bir sorunla karşılaştım. Open() yöntemini kullanarak aynı veritabanı dosyasının farklı bağlantılarını elde ettim. Bağlantı 1 bir işlem başlatır ve bağlantı 2 bir tablonun birkaç kaydını güncellemek için başka bir işlem başlatır. Sonra bağlantı 1 işlemi gerçekleştirir, ardından 2 numaralı bağlantıyı gerçekleştirir. Ancak, bağlantı 2'nin güncelleştirme komutunun aslında veritabanındaki kaydı güncelleştirmediğini buldum. Bu işlem sırasında atılan bir istisna yoktur. Problemin neden oluştuğunu bilmiyorum. Herkes bana sebebini açıklayabilir mi?Aynı sqlite veritabanının farklı bağlantıları aynı anda işlemlere başlayabilir mi?
7
A
cevap
14
SQLite belgelerini okuyorsanız, bunun yalnızca okuma için birden çok bağlantıyı desteklediğini göreceksiniz, veritabanı için çok sayıda bağlantıdan yazamazsınız, çünkü bunun için tasarlanmamıştır. Eğer işlem başlatmayı DERHAL BEGIN kullanmak sürece
5
, sen geri alma ve bunları yeniden denemek zorunda riski vardır. Bir BEGIN herhangi bir kilitleme yapmaz; sonraki UPDATE veya INSERT kilidi alır ve başarısız olup olmadığını görmek için sonuç kodunu kontrol etmeniz gerekir. Bu sayfaya transactions numaralı telefondan ve locks numaralı telefondan ulaşabilirsiniz.
İlgili konular
- 1. Aynı anda birden çok SQLite veritabanını kullanma
- 2. Aynı anda
- 3. aynı anda
- 4. Aynı PostgreSQL veritabanının iki sahibi
- 5. iPad - Aynı hareketin aynı anda tanınması
- 6. indexOutOfBoundsException list.remove aynı anda 2 iş parçacığıyla (aynı anda) çalıştır
- 7. Gitlab Wiki aynı sayfa bağlantıları
- 8. Aynı anda Visual Studio
- 9. Aynı anda Bash
- 10. Kontroller aynı anda çizilmiyor
- 11. Android: Aynı anda
- 12. Aynı anda scrapyd
- 13. Sqlite veritabanında, aynı anda Tabloda Birden Çok Satır Nasıl Eklenir
- 14. Tek sütun aynı anda MySQL
- 15. Bir Android uygulamasının farklı cihazlar için farklı sürümleri aynı anda olabilir mi?
- 16. Aynı anda 3 bağlantı ayrıştırma htmlagilitypack
- 17. Bir URL "//" ile başlayabilir mi?
- 18. Android ve iOS'ta aynı uygulamaya aynı anda geçiş entegrasyonu
- 19. Aynı anda bir foreach çalıştırılamıyor
- 20. Aynı anda UPDATE ve SELECT
- 21. Aynı anda iki dizide yineleyin
- 22. Java: Farklı nesnelerden aynı anda iki nesneyi kaldırmak
- 23. Farklı ses düzeylerinde aynı anda java mp3'leri oynayın
- 24. yönteminin aynı anda farklı iş parçacıklarından yürütülmesini engellemesi
- 25. 2 farklı symfony2 güvenlik duvarında aynı anda nasıl kimlik doğrulanır?
- 26. Değerler aynı anda iki farklı etkinliğe nasıl gönderilir
- 27. HTML5'te aynı sesi aynı anda birden fazla oynatabilir miyim?
- 28. Django Aynı anda birkaç öznitelik oluşturulsun mu?
- 29. Aynı çözümdeki birden çok projeyle bağlantıları paylaşma
- 30. Underscore.js'de iki listeden aynı anda yineleme yapılabilir mi?
Bununla birlikte, iki eşzamanlı yazma işlemi yapabilirsiniz, bu da soruna neden olan şeydir. –
Bu nedenle, veritabanına yazma işlemi yapan bir işlem varsa, bu işlemler bir işlem dahilinde olsun veya olmasın, diğer yazma işlemleri veritabanını değiştiremez? – user26404
Yazma işlemi yaparken başka bir bağlantı olduğunda (ekleme, güncelleme) aynı anda seçim yapabilir miyim? – user26404