2009-12-01 5 views

cevap

9

Bu seçenekleri PHP, içinden etkinleştiremezsiniz, bu seçenekleri etkinleştirmek için SQLite'ı kendiniz derlemeniz gerekir. Önemli olarak, SQLite download page'dan tam versiyonunu, kaynak sürümünü indirmeye gerek yoktur.

Eğer Unix kullanıyorsanız, sqlite-3.6.20.tar.gz tarball alın ve indirin. Ardından:

tar xzf sqlite-3.6.20.tar.gz 
cd sqlite-3.6.20 
export CFLAGS='-DSQLITE_ENABLE_UPDATE_DELETE_LIMIT=1' 
./configure 
make 

Sonra sqlite3 komut satırı yardımcı programını ve .libs alt dizininde kütüphane dosyaları gerekecek.

+0

Bunu yapmadığını biliyorum, ama benim sorum neden kilitliydi? – user5243421

+0

Çalışmıyordum, kullandığım sürüm 3.7.6.2. Başka herhangi bir fikir var mı? –

2

, bunu etkinleştirmek için

#define SQLITE_ENABLE_UPDATE_DELETE_LIMIT 

kullanarak SQLite kaynak kodunu derlemek için var gibi görünüyor.

+0

Whoops, ben php ile yapıyorum kaydetti gerekirdi. – user5243421

16

Sen seçme ile sınırı kullanabilir ve benzeri seçin birleştirebilir ve silebilirsiniz:

DELETE FROM Foo 
WHERE someColumn in 
(
    SELECT someColumn FROM FOO WHERE SomeCondition LIMIT 200 
) 
+0

Zeki numara. Bir şey daha: 'someColumn' için PK sütunu kullanmak daha güvenlidir. – guneysus

10
DELETE FROM table WHERE rowid = (SELECT rowid FROM table WHERE condition LIMIT 1) 
+0

Veya: Tablodan WHERE rowid IN SİLME (SELECT rowID FROM table WHERE koşul LIMIT amount_of_rows) – LionKing

+0

Benim için çalıştı. teşekkür ederim – IndieBoy