26 NİSAN 2010, PAZARTESİ
SQLite UPSERT - KEY UPDATE YİNELENEN
MySQL şöyle bir şey var:
INSERT INTO visits (ip, hits)
VALUES ('127.0.0.1', 1)
ON DUPLICATE KEY UPDATE hits = hits 1;
Bilmek istediğim bu özellik SQLite yok bildiğim kadarıyla, eğer bir yolu varsa iki sorgu çalıştırmak zorunda kalmadan aynı etkiyi arşiv için. Ayrıca, eğer bu mümkün değilse, ne tercih edersiniz:
- SEÇİN (EKLEME veya GÜNCELLEME)ya
- GÜNCELLEME ( EKLEeğer GÜNCELLEME başarısız olursa)
CEVAP
27 NİSAN 2010, Salı
INSERT OR IGNORE INTO visits VALUES ($ip, 0);
UPDATE visits SET hits = hits 1 WHERE ip LIKE $ip;
Bu "" (ya da BİRİNCİL ANAHTAR) BENZERSİZ kısıtlama sütun. ıp gerektirir
EDİT: Başka bir mükemmel çözüm: http://stackoverflow.com/a/4330694/89771.
Bunu Paylaş:
Nasıl bir UPSERT (BİRLEŞTİR, EKLE ... ...
Birden çok satır için YİNELENEN KEY UP...
SQLite - EKLE veya DEĞİŞTİR *UPSERT* ...
Android SQLite: Update Deyimi...
Birden çok öğe için YİNELENEN KEY UPDA...