SORU
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:

  1. SEÇİN (EKLEME veya GÜNCELLEME)ya
  2. 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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ghosti66

    ghosti66

    27 AĞUSTOS 2006
  • LearnKey

    LearnKey

    19 AĞUSTOS 2008
  • placeboing

    placeboing

    7 Mart 2006